栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python:Json格式化参数方法dumps()的使用

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python:Json格式化参数方法dumps()的使用

json.dumps() 方法:将 Python 对象转换为 JSON 字符串
import json

request_json = {'score': 21.2,'name': '张三'}
res = json.dumps(request_json)

print(res)

这边查看结果发现,中文被转义后输出了...... 好在dumps()方法提供了很多关键字参数来格式化输出:
def dumps(obj, *, skipkeys=False, ensure_ascii=True, check_circular=True,
        allow_nan=True, cls=None, indent=None, separators=None,
        default=None, sort_keys=False, **kw):
所有参数参数释义
obj表示 Python 对象
*星号本身不是参数。星号表示其后面的参数都是关键字参数,需要使用关键字参数传值,否则程序会出现错误
skipkeys默认值:False,如果为True,则不是基本对象 (包括str、int、float、bool、None) 的字典的键会被跳过,否则引发一个 TypeError 错误信息
ensure_ascii 默认值为 True,会将所有输入的非 ASCII 字符转义输出,如果值为 False,会将输入的非 ASCII 字符原样输出
check_circular表示检验循环引用,默认值为 True。如果值为 False,则容器类型的循环引用会被跳过并引发一个 OverflowError 错误
allow_nan默认值为 True。如果值为 False,那么在对 JSON 规范以外的 float 类型值 (nan、inf 和 -inf) 进行序列化时将会引发一个 ValueError 错误;如果值为 True,则使用它们的 Javascript 等价形式(NaN、Infinity 和 -Infinity )
cls默认值为 None。通过该关键字参数可以指定自定义的 JSonEncoder 的子类
indent默认值为 None。选择最紧凑的表达。如果 indent 是一个非负整数或者字符串,那么 JSON 数组元素和对象成员会被美化输出为该值指定的缩进等级。如果缩进等级为零、负数或者 “”,则只会添加换行符。当 indent 为一个正整数时会让每一层缩进同样数量的空格;如果 indent 是一个字符串如换行符、制表符 ( “n”、 “t”) 等,那么这个字符串会被用于每一层
separators默认值为 None。该参数是一个元组,即:(’,’, ‘: ‘),其中包含空白字符。如果想要得到最紧凑的 JSON 表达式,应指定该参数为:(’,’,’:’),不要空白字符
default默认值为 None。如果要指定该参数,则该参数应是一个函数。每当某个对象无法被序列化时,它就会被调用。它返回该对象的一个可以被 JSON 编码的版本或者引发一个 TypeError (传入参数的类型错误)。如果不指定该参数,则会直接引发 TypeError
sort_keys默认值为 False。如果值为True,那么字典的输出会以键的顺序排序
**kw其他关键字参数,用于字典
别看那么多参数,一般只需要用标红的三个关键字参数即可
import json

request_json = {'operatorId': 1161818,'score': 21.2,'clientId': '1','isAutoLogin': False,'type': [1,2]}

'''
  :param indent       : 【默认为 None 】序列化之后,每行数据的缩进字符
  :param ensure_ascii : 【默认为 True 】True,输入的非 ASCII 字符转义输出 ; False,非 ASCII 字符原样输出
  :param sort_keys    : 【默认为 False】True,字典的输出会以键的顺序排序  ; False,根据入参顺序输出
'''
res = json.dumps(request_json,indent=3,ensure_ascii=False,sort_keys=True)

print(res)


>>> 控制台打印输出结果:
C:UsersuserAppDataLocalProgramsPythonPython36python.exe D:/pythonProject/test.py

{
   "clientId": "1",
   "isAutoLogin": false,
   "operatorId": 1161818,
   "score": 21.2,
   "type": [
      1,
      2
   ]
}
Process finished with exit code 0
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/280656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号