python json.dumps参数_json.dumps参数之解

通过help(“json”) 可以参考json库使用说明

编码后的json格式字符串紧凑输出,且无顺序,其dumps方法提供一些可选的参数,让输出的格式提高可读性。

(1)sort_keys是告诉编码器按照字典key排序(a到z)输出。

>>> import json

>>> data = [{'c': 'C', 'b':(1, 6), 'a': 'A'}]

>>> print(data)

[{'a': 'A', 'c': 'C', 'b': (1, 6)}]

>>> print(json.dumps(data,sort_keys=True))

[{"a": "A", "b": [1, 6], "c": "C"}]

(2)indent参数根据数据格式缩进显示,读起来更加清晰, indent的值,代表缩进空格式:

>>> print(json.dumps(data,sort_keys=True))

[{"a": "A", "b": [1, 6], "c": "C"}]

>>> print(json.dumps(data,sort_keys=True,indent=4))

[

{

"a": "A",

"b": [

1,

6

],

"c": "C"

}

]

(3)separators参数的作用是去掉‘,’ ‘:’后面的空格,在传输数据的过程中,越精简越好,冗余的东西全部去掉。

>>> print(json.dumps(data,sort_keys=True))

[{"a": "A", "b": [1, 6], "c": "C"}]

>>> print(json.dumps(data,sort_keys=True,separators=(',',':')))

[{"a":"A","b":[1,6],"c":"C"}]

(4)skipkeys参数,在encoding过程中,dict对象的key只可以是string对象,如果是其他类型,那么在编码过程中就会抛出ValueError的异常。skipkeys可以跳过那些非string对象当作key的处理.

>>> data2 = [{"a": "A", "b": [1,6], "c": "C", ('d',): 'D'}]

>>> print(json.dumps(data2,sort_keys=True,separators=(',',':')))

Traceback (most recent call last):

File "", line 1, in

File "/usr/lib64/python2.6/json/__init__.py", line 237, in dumps

**kw).encode(obj)

File "/usr/lib64/python2.6/json/encoder.py", line 367, in encode

chunks = list(self.iterencode(o))

File "/usr/lib64/python2.6/json/encoder.py", line 306, in _iterencode

for chunk in self._iterencode_list(o, markers):

File "/usr/lib64/python2.6/json/encoder.py", line 204, in _iterencode_list

for chunk in self._iterencode(value, markers):

File "/usr/lib64/python2.6/json/encoder.py", line 309, in _iterencode

for chunk in self._iterencode_dict(o, markers):

File "/usr/lib64/python2.6/json/encoder.py", line 268, in _iterencode_dict

raise TypeError("key {0!r} is not a string".format(key))

TypeError: key ('d',) is not a string

>>> print(json.dumps(data2,sort_keys=True,skipkeys=True))

[{"a": "A", "b": [1, 6], "c": "C"}]

(5)输出真正的中文需要指定ensure_ascii=False

如果无任何配置,或者说使用默认配置,

输出的会是‘凉凉’的ASCII字符吗,而不是真正的中文。

这是因为json.dumps 序列化时对中文默认使用的ascii编码。

>>> print(json.dumps('中国'))

"\u4e2d\u56fd"

>>> print(json.dumps('中国',ensure_ascii=False))

"中国"

json.dumps() 是一个Python中的函数,用于将Python对象编码成JSON字符串。它接受一个Python对象作为参数,并返回一个表示该对象的JSON字符串。 它的主要作用是将Python对象转换成JSON字符串形式,方便在网络传输或存储到文件中。它可以接受多个参数,用于控制JSON字符串的生成方式,例如是否跳过特殊键值、是否确保ASCII字符、是否检查循环引用等等。 示例代码中展示了如何使用json.dumps() 将一个字典对象转换成JSON字符串形式。首先,我们定义了一个包含水果和蔬菜的字典对象data,然后使用json.dumps() 函数将该字典对象转换成JSON字符串,并通过print() 函数进行输出。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Pythonjson.dumps()函数](https://blog.csdn.net/m0_51623564/article/details/127339600)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [【pythonjson.dumps() 与 json.loads() 用法](https://blog.csdn.net/qq_45859826/article/details/124158012)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值