json.dumps 与 flask.jsonify
问题描述
我不确定我是否理解 flask.jsonify
方法的目的.我尝试从中创建一个 JSON 字符串:
I am not sure I understand the purpose of the flask.jsonify
method. I try to make a JSON string from this:
data = {"id": str(album.id), "title": album.title}
但是我使用 json.dumps
得到的结果与使用 flask.jsonify
得到的不同.
but what I get with json.dumps
differs from what I get with flask.jsonify
.
json.dumps(data): [{"id": "4ea856fd6506ae0db42702dd", "title": "Business"}]
flask.jsonify(data): {"id":…, "title":…}
显然我需要得到一个看起来更像 json.dumps
返回的结果.我做错了什么?
Obviously I need to get a result that looks more like what json.dumps
returns. What am I doing wrong?
解决方案
flask 中的 jsonify()
函数返回一个 flask.Response()
对象,该对象已经有了与 json 响应一起使用的适当的内容类型标头application/json".而 json.dumps()
方法只会返回一个编码字符串,这需要手动添加 MIME 类型标头.
The jsonify()
function in flask returns a flask.Response()
object that already has the appropriate content-type header 'application/json' for use with json responses. Whereas, the json.dumps()
method will just return an encoded string, which would require manually adding the MIME type header.
查看更多关于 jsonify()
函数的信息这里 供完整参考.
See more about the jsonify()
function here for full reference.
另外,我注意到 jsonify()
处理 kwargs 或字典,而 json.dumps()
还支持列表和其他.
Also, I've noticed that jsonify()
handles kwargs or dictionaries, while json.dumps()
additionally supports lists and others.
相关文章