Flask 框架里,可以用 jsonify 返回 json 数据,但是为什么不用 Python 自带的 json 模块返回 JSON 数据呢?

其实是一样

其实,jsonify 在处理数据过程中,对数据做 JSON 序列化处理时,用的是 itsdangerous 模块里的 JSON

真正区别

Content-Type 的差别

对比代码一jsonify:

##  jsonify
import json
from flask import Flask, jsonifyapp = Flask(__name__)@app.route('/json')
def test_json():data = {'name': 'lili', 'age': 20}return jsonify(data)app.run(host="0.0.0.0", port=5000)

浏览器里输入http://127.0.0.1:5000/json, 得到的结果是

{"age":20,"name":"lili"}

对比代码二json:

## json
import json
from flask import Flask, jsonifyapp = Flask(__name__)@app.route('/json')
def test_json():data = {'name': 'lili', 'age': 20}return json.dumps(data)app.run(host="0.0.0.0", port=5000)

浏览器里输入http://127.0.0.1:5000/json, 得到的结果是

{"name": "lilei", "age": 30}

从内容上看,两种方法没有区别。
但是使用 jsonify 时,返回的 http response 的 Content-Type 是

Content-Type: application/json

而使用json.dumps时,Content-Type则是

Content-Type: text/html; charset=utf-8

既然返回的是 json 数据,那么自然要指明 Content-Type 是 application/json , 这样做是符合 HTTP 协议的规定的,这就是使用 jsonify 的原因之一。

使用 jsonify 除了让返回的 `http response符合 HTTP 协议,同时也对数据做了压缩处理,让数据体积更小。

仔细比较上面两种方法返回的数据,虽然内容相同,但 jsonify 返回的数据,每个 key-value 对之间的逗号,和每个 keyvalue 之间的冒号后面都是没有空格的,而 json.dumps 返回的数据里,却在逗号和冒号后面存在空格,因此即便内容相同,jsonify 返回的数据体积更小,更节省流量。

其实,json.dumps 也可以将这些不必要的空格去掉,看下面的代码

import jsondata = {'name': 'lili', 'age': 20}print(json.dumps(data, separators=(',', ':')))
print(json.dumps(data))

输出结果为:

{"name":"lili","age":20}
{"name": "lili", "age": 20}

Flask 的 jsonify相关推荐

  1. Flask中 jsonify有什么作用?如何使用?

    Flask中 jsonify有什么作用?如何使用? jsonify是Flask框架提供的一个函数,用于将Python对象转换为JSON格式的响应.它将Python对象转换为JSON格式的字符串,并将其 ...

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

    环境:python3.6,  Flask1.0.3 flask提供了jsonify函数供用户处理返回的序列化json数据, 而python自带的json库中也有dumps方法可以序列化json对象. ...

  3. 对 flask 的 jsonify 方法的理解

    flask下面有个jsonify函数,函数的作用就是返回一个JSON类型的Response(一般用于把数据返回给前端) 要使用jsonify,首先你得要按下面一样引用一下: from flask im ...

  4. from flask import jsonify

    from flask import jsonify jsonify是flask中的扩展包,可以将数据转换成json数据. 字典和json的区别是什么? json: (JavaScript Object ...

  5. flask中jsonify和json区别

    一 JSON数据结构 要把json与字典区分开来 dumps(字典转换成Json)                loads(Json转换成字典) Python 的字典是一种数据结构,JSON 是一种 ...

  6. python flask使用jsonify问题处理

    报错 AttributeError: 'Request' object has no attribute 'is_xhr' 解决方法 1)查看jsonify原函数 def jsonify(*args, ...

  7. Python:Flask使用jsonify格式化时间

    代码如下 # -*- coding: utf-8 -*- from datetime import datetime, datefrom flask.json import JSONEncodercl ...

  8. flask 的 jsonify 自动排序问题

    背景 ·Python 在写接口的时候有时需要返回 json 格式的数据给客户端 ·最简单的方式就是用 flask 的 jsonify,能直接将字典格式化为 json 的形式进行传输 例如 from f ...

  9. Flask 的 jsonify 理解

    文章目录 python 代码 解决 原因 Content-Type的区别 python 代码 # -*- coding:utf-8 -*- from flask import Flask, jsoni ...

最新文章

  1. [转载]内存分配 知识,全局,局部,静态变量
  2. linux mysql 5.6.14_CentOS 6.4下编译安装MySQL 5.6.14
  3. Python基础之赋值运算符
  4. 酷客多小程序DIY体系全面升级,还加入了这些新功能
  5. ad怎么批量改元器件封装_ad16如何批量添加封装库?
  6. 基于JSP的旅游网站系统
  7. matlab有限差分法求解温度场,动静压轴承油膜温升MATLABFLuENT有限差分法硕士论文...
  8. X波段卡塞格伦天线设计与仿真
  9. hp服务器时间修改,HP服务器bios时间设置确认
  10. H3C网络设备模拟器配置VLAN-Hybrid
  11. signature=3e113c2e337ada93de6227c65daceed1,Informed Consent: It Is More Than Just a Document
  12. xp系统计算机无线开关在哪,xp怎么设置无线网络?xp系统设置无线网络的方法
  13. js 按拼音 首字母 排序 并分组
  14. 矩池云 | Tony老师解读Kaggle Twitter情感分析案例
  15. linux程序间管道通信,linux进程间通信——管道 详解
  16. BT 面板控制命令 宝塔 Linux 常用命令收集整理
  17. 索引合并和组合索引的比较
  18. python中的bisect模块与二分查找
  19. CSDN 编程挑战 博弈游戏2 斐波那契
  20. Black-Lives-Matter-Resources

热门文章

  1. 途牛旅游项目-导航条(后端数据测试)
  2. vscode之 Couldn‘t find a tree builder with the features you requested: lxml. Do you need to install a
  3. CSP认证-现值计算、训练计划、JPEG 解码、聚集方差
  4. 流量卡之家:5G到来的前夕 为何4G网速越来越慢?
  5. canvas框架收集
  6. 计算机专业可以考事业单位a类吗,事业单位A类考什么?
  7. APPYING独家:《复仇的小猪》的运营成长之路
  8. python画环形图_Python通过matplotlib画双层饼图及环形图简单示例
  9. C++ string类(包括深浅拷贝)
  10. 利用Cocos2d-x写一个程序读取传奇wzl文件