Flask中jsonify和json.dumps用法以及区别(简单案例)

环境:python3.6,  Flask1.0.3

 

flask提供了jsonify函数供用户处理返回的序列化json数据,

而python自带的json库中也有dumps方法可以序列化json对象.

其二者的区别,写个简单的案例实测一下便见分晓。

from flask import Flask
from flask import jsonify
import json

app=Flask(__name__)
app.config['JSON_AS_ASCII'] = False

# 随便定义个json字典
dic={"a":1,"b":2,"c":"你好"}
@app.route('/jsonify')
def jsonifys():
    # Content-Type: application/json
    return jsonify(dic)

@app.route('/jsondumps')
def jsondumps():
    # Content-Type: text/html; charset=utf-8
    return json.dumps(dic,ensure_ascii=False)

if __name__ == '__main__':
    app.run(debug=True)

1.我们先访问 http://127.0.0.1:5000/jsonify 地址查看jsonify返回的json内容如下

Flask中jsonify和json.dumps用法以及区别(简单案例)_第1张图片

检查页面属性看Response内容:

Flask中jsonify和json.dumps用法以及区别(简单案例)_第2张图片

 

2.再访问另一个地址 http://127.0.0.1:5000/jsondumps 查看返回的json内容如下

Flask中jsonify和json.dumps用法以及区别(简单案例)_第3张图片

检查页面属性看Response内容:

Flask中jsonify和json.dumps用法以及区别(简单案例)_第4张图片

 

使用jsonify时响应的Content-Type字段值为application/json,

而使用json.dumps时该字段值为text/html。

 

ps:

使用jsonify方法是需要添加一句 app.config['JSON_AS_ASCII'] = False

而json.dumps方法需要添加参数 ensure_ascii=False

这样做可以避免显示中文乱码。

你可能感兴趣的:(python,API开发)