json.dumps 中的参数
json.dumps 中的参数
1、ensure_ascii 参数
ensure_ascii=False
是在使用 json.dump
或 json.dumps
方法时的一个参数选项,它告诉 JSON 序列化器保留非 ASCII 字符而不进行转义。
这对于包含中文或其他非 ASCII 字符的字符串是非常有用的,可以使得输出的 JSON 更加易读,并且在某些情况下避免信息丢失。
想输出真正的中文需要指定 ensure_ascii=False
json.dump(data, f, separators=(',', ':'), indent=4, ensure_ascii=False)
只要您的数据中有非 ASCII 字符,并且这些字符是正确的 Unicode 字符(Python 3 中的字符串默认是 Unicode 字符串),那么使用 ensure_ascii=False 将会在生成的 JSON 文件中看到这些字符而不会被转义成类似 \uXXXX 的形式。
2、separators 参数
在 json.dump
和 json.dumps
方法中,separators
参数用于指定键值对之间的分隔符。
默认情况下,Python 的 json 模块使用空格和逗号 ((", ", ": ")) 作为分隔符。这意味着在序列化 JSON 数据时,默认的格式如下:
{
"key": "value",
"another_key": "another_value"
}
每个键值对之间有一个空格和逗号,冒号后面也有一个空格。
当设置 separators=(',', ':')
时,实际上是去除了这些空格,使 JSON 输出更加紧凑,例如:
{"key":"value","another_key":"another_value"}
这种紧凑的格式通常用于减少文件大小,尤其是在网络传输中。然而,这种格式降低了人类阅读的便利性。