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

本文介绍了Python的json.dumps()方法,用于将Python对象转换为JSON字符串。详细解释了各个参数的作用,如indent用于美化输出,ensure_ascii控制是否转义非ASCII字符,sort_keys使字典按键排序。示例中展示了如何使用这些参数来格式化输出JSON数据。
摘要由CSDN通过智能技术生成
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:\Users\user\AppData\Local\Programs\Python\Python36\python.exe D:/pythonProject/test.py

{
   "clientId": "1",
   "isAutoLogin": false,
   "operatorId": 1161818,
   "score": 21.2,
   "type": [
      1,
      2
   ]
}
Process finished with exit code 0
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值