Flask jsonify返回Response.如何提供状态代码



我列举了许多开发人员具有以下表达式的示例:

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)

最新更新