这个问题在这里已经有了答案:
Return JSON response from Flask view
(14 个回答)
2年前关闭。
我试图在 flask 中返回这个列表。教师是一个类并返回对象。
@app.route('/v1/teachers', methods=['GET'])
def getTeachers():
teachers = []
for teacher in Teacher.objects:
teachers.append(teacher)
return teachers
此代码返回的典型错误
TypeError: 'list' object is not callable The view function did not return a valid response.
我快疯了,我不知道发生了什么。有人知道吗?
谢谢!!
编辑:
我已经解决了。问题不在于如何返回列表,问题在于对象的 JSON 序列化。
@app.route('/v1/teachers', methods=['GET'])
def getTeachers():
teachers = []
for teacher in Teacher.objects:
teacherJson = teacher.to_json()
teacherData = json.loads(teacherJson)
teachers.append(teacherData)
return jsonify({'teachers': teachers})
谢谢你的帮助。
最佳答案
你不能直接从 flask View 返回列表。请尝试 jsonify
from flask import jsonify
@app.route('/v1/teachers', methods=['GET'])
def getTeachers():
teachers = []
for teacher in Teacher.objects:
teachers.append(teacher)
return jsonify(teachers)
关于python - 如何在 Python 和 Flask 上返回列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54003751/