如何漂亮打印 JSON 文件
Jinku Hu
2023年1月30日
如果将 JSON 文件的内容读入字符串或 load
到字符串中,则内容可能会有些混乱。
例如,在一个 JSON 文件中,
[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}]
如果你 load
然后再打印它,
import json
with open(r"C:\test\test.json", "r") as f:
json_data = json.load(f)
print(json_data)
[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}]
与我们通常看到的标准格式相比,标准格式的可读性强。
[
{
"foo": "Etiam",
"bar": [
"rhoncus",
0,
"1.0"
]
}
]
json.dumps
方法
json.dumps()
函数将给定的对象序列化为 JSON 格式的 str
。
我们需要在 json.dumps()
函数中给关键字参数 indent
一个正整数,以使用给定的缩进级别漂亮地打印 obj
出来。如果 ident
将其设置为 0,则只会插入新行。
import json
with open(r"C:\test\test.json", "r") as f:
json_data = json.load(f)
print(json.dumps(json_data, indent=2))
[{"foo": "Etiam", "bar": ["rhoncus", 0, "1.0"]}]
pprint
方法
pprint
模块提供了漂亮打印 Python 数据结构的功能。pprint.pprint
pretty 将 Python 对象打印出之后,然后换行。
import json
import pprint
with open(r"C:\test\test.json", "r") as f:
json_data = f.read()
json_data = json.loads(json_data)
pprint.pprint(json_data)
JSON 文件数据内容将被漂亮地打印出来。你还可以通过分配 indent
参数来定义缩进。
pprint.pprint(json_data, indent=2)
Attention
pprint
对待单'
引号和双引号"
相同,但 JSON
只能使用"
,因此,pprinted JSON
文件内容不能直接保存到文件中。
否则,新文件将不会被解析为有效 JSON
格式。
作者: Jinku Hu