我正在使用flask-RESTful开发一个API,但在使用Flask的jsonify函数时遇到了问题。我正在使用flask-marshmallow进行JSON序列化。以下是一个非常简化的代码片段:
result = activities_schema.dump(activities)
return jsonify(result)
本地环境下,端点将返回具有“数据”和“错误”键的json;然而,在Linux服务器上运行时,返回一个包含列表和字典的结果,没有“数据”和“错误”键。
我已经确定这种不一致性是由Flask的jsonify函数引起的,通过在API返回结果之前打印出结果来确认。无论是本地还是服务器上,“result”的值都相同:
MarshalResult(data=[], errors={})
然而,当我使用Flask的jsonify后打印响应时,本地我得到的结果是这样的:
('{\n "data": [], \n "errors": {}\n}', '\n')
在服务器上打印出以下内容:
('[\n [], \n {}\n]', '\n')
有人知道为什么这些不匹配吗?
Marshmallow >= 3
以来,模式始终是严格的:升级说明。 - el.atomo