import json
data = {'key1': [1, {'sub_key':'sub_value'}, 3], 'key2': {'nested_key': 'nested_value'}}
json_str = json.dumps(data, ensure_ascii=False)
print(json_str)
json.dumps
函数默认参数及其作用:
skipkeys
:默认值为False
。如果设置为True
,当字典的键不是基本类型(字符串、数字、元组、列表、字典、布尔值或None
)时,跳过这些键而不引发TypeError
。
ensure_ascii
:默认值为True
。如果设置为False
,非ASCII字符会按原字符输出,能正常显示中文字符等非ASCII字符;如果为True
,非ASCII字符会被转义成\uXXXX
的形式。
check_circular
:默认值为True
。如果设置为False
,将不检查对象中是否存在循环引用,可能导致无限循环。
allow_nan
:默认值为True
。如果设置为False
,在序列化float
类型的NaN
、Infinity
和-Infinity
时会引发ValueError
,默认情况下会将它们序列化为null
、Infinity
和-Infinity
。
cls
:默认值为None
。可以传入一个自定义的JSON编码器类,用于处理默认编码器无法处理的对象类型。
indent
:默认值为None
。如果设置为一个整数或字符串,JSON字符串会进行缩进格式化,便于阅读,整数表示缩进的空格数,字符串表示缩进的字符。
separators
:默认值为(', ', ': ')
, 即项之间用逗号加空格分隔,键值对之间用冒号加空格分隔。可以自定义分隔符,例如(',', ':')
可以减少生成的JSON字符串中的空格。
default
:默认值为None
。可以传入一个函数,当遇到无法序列化的对象时,会调用该函数来获取可序列化的值。