我试图得到json格式的答案,但它只是返回一个弦。什么我做错了吗?你知道吗
from flask import Flask, request, Response
import mysql.connector
import json
app = Flask(__name__)
def createConnection():
connection = mysql.connector.connect(user="akshay", password="akshay", host="localhost", database="BOOKS")
return connection
@app.route("/contact")
def getContacts():
print(request)
connection = createConnection()
cursor = connection.cursor()
cursor.execute("SELECT ID, NAME, AUTHOR, SUBJECT, PRICE FROM BOOKS;")
contacts = []
for (ID, NAME, AUTHOR, SUBJECT, PRICE) in cursor:
contacts.append({
'ID': ID,
'NAME': NAME,
"AUTHOR": AUTHOR,
"SUBJECT": SUBJECT,
"PRICE": PRICE
})
cursor.close()
connection.close()
response = Response()
response.content_type ='application/json'
response.data = json.loads(json.dumps(contacts))
return response
app.run('0.0.0.0', 4000)
[{u'PRICE': 9999.999, u'AUTHOR': u'AKSHAY', u'NAME': u'AKSHAY', u'ID': 4, u'SUBJECT': u'BIG_DATA'}, {u'PRICE': 123.456, u'AUTHOR': u'Yashwant Kanetkar', u'NAME': u'Exploring C', u'ID': 1001, u'SUBJECT': u'C Programming'}, {u'PRICE': 371.019, u'AUTHOR': u'Yashwant Kanetkar', u'NAME': u'Pointers in C', u'ID': 1002, u'SUBJECT': u'C Programming'}, {u'PRICE': 334.215, u'AUTHOR': u'E Balaguruswami', u'NAME': u'ANSI C Programming', u'ID': 1003, u'SUBJECT': u'C Programming'}, {u'PRICE': 140.121, u'AUTHOR': u'Dennis Ritchie', u'NAME': u'ANSI C Programming', u'ID': 1004, u'SUBJECT': u'C Programming'}, {u'PRICE': 417.764, u'AUTHOR': u'Herbert Schildt', u'NAME': u'C++ Complete Reference', u'ID': 2001, u'SUBJECT': u'C++ Programming'}, {u'PRICE': 620.665, u'AUTHOR': u'Stanley Lippman', u'NAME': u'C++ Primer', u'ID': 2002, u'SUBJECT': u'C++ Programming'}, {u'PRICE': 987.213, u'AUTHOR': u'Bjarne Stroustrup', u'NAME': u'C++ Programming Language', u'ID': 2003, u'SUBJECT': u'C++ Programming'}, {u'PRICE': 525.121, u'AUTHOR': u'Herbert Schildt', u'NAME': u'Java Complete Reference', u'ID': 3001, u'SUBJECT': u'Java Programming'}, {u'PRICE': 575.651, u'AUTHOR': u'Cay Horstmann', u'NAME': u'Core Java Volume I', u'ID': 3002, u'SUBJECT': u'Java Programming'}, {u'PRICE': 458.238, u'AUTHOR': u'James Gosling', u'NAME': u'Java Programming Language', u'ID': 3003, u'SUBJECT': u'Java Programming'}, {u'PRICE': 567.391, u'AUTHOR': u'Peter Galvin', u'NAME': u'Operatig System Concepts', u'ID': 4001, u'SUBJECT': u'Operating Systems'}, {u'PRICE': 421.938, u'AUTHOR': u'Mauris J Bach', u'NAME': u'Design of UNIX Operating System', u'ID': 4002, u'SUBJECT': u'Operating Systems'}, {u'PRICE': 352.822, u'AUTHOR': u'Uresh Vahalia', u'NAME': u'UNIX Internals', u'ID': 4003, u'SUBJECT': u'Operating Systems'}, {u'PRICE': 872.652, u'AUTHOR': u'Ayn Rand', u'NAME': u'Atlas Shrugged', u'ID': 8001, u'SUBJECT': u'Novell'}, {u'PRICE': 9999.999, u'AUTHOR': u'AKSHAY', u'NAME': u'AKSHAY', u'ID': 9001, u'SUBJECT': u'BIG_DATA'}]
您的代码没有什么特别的错误,只要删除对
json.loads()
的调用,这样JSON编码的数据就可以用作响应数据。你知道吗调用
json.loads()
将重新创建一个Python数据结构(本例中为字典列表)并将其传递给响应,该响应不会序列化为有效的JSON。在python2中,它将使用由str()
生成的Pythonrepr()
格式进行序列化,该格式并不总是生成与JSON兼容的字符串(例如u''
字符串前缀不是有效的JSON)。在python3中,is可能会导致异常,因为它无法转换为bytes对象。你知道吗您可以通过使用^{} 来改进代码,它将返回一个
Response
对象,该对象具有正确的内容类型头和JSON主体:好了,终于得到了正确的输出:
我搬走了json.loads文件()并安装了json查看器插件。谢谢非常感谢你的帮助。你知道吗
相关问题 更多 >
编程相关推荐