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

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

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

print(res)

Python:Json格式化参数方法dumps()的使用_第1张图片

这边查看结果发现,中文被转义后输出了...... 好在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

你可能感兴趣的:(python自学笔记,python,json)