如何漂亮打印 JSON 文件

Jinku Hu 2023年1月30日
  1. json.dumps 方法
  2. pprint 方法
如何漂亮打印 JSON 文件

如果将 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
Jinku Hu avatar Jinku Hu avatar

DelftStack.com 创始人。Jinku 在机器人和汽车行业工作了8多年。他在自动测试、远程测试及从耐久性测试中创建报告时磨练了自己的编程技能。他拥有电气/电子工程背景,但他也扩展了自己的兴趣到嵌入式电子、嵌入式编程以及前端和后端编程。

LinkedIn Facebook

相关文章 - Python JSON