我列举了许多开发人员具有以下表达式的示例:
return jsonify(data), 200
即使在我的上一个工作项目中,我也有同样的表达,但现在,当我试图写我的新项目时,我发现了以下错误:
类型错误:响应类型的对象不是JSON可序列化
如果我只返回jsonify()
的结果,它可以工作,但返回200状态代码。我想控制代码。它不适用于flask_restful.Resource
。
似乎jsonify()
返回了Response
对象。如何修复?
听起来data
是一个响应对象,当您试图将其序列化为JSON时,代码会阻塞。尝试return jsonify(data.text), 200
。
如果这不起作用,我们需要更多的代码来诊断。
flask restful已经使用了jsonify。
如果您将jsonify与flask restful一起使用,它会尝试两次jsonify响应。
只需这样做:
return data, 200
我得到了同样的错误,最终应用了Dzianis Talkachou的解决方法来防止它:
将jsonify
响应封装在make_response
中即可。
from flask import jsonify, make_response
...
return make_response(jsonify(your_data), 200)