如何在 Python 中漂亮地打印 JSON 文件?
网友回答:
您可以在命令行上执行此操作:
python3 -m json.tool some.json
(正如在问题的评论中已经提到的,感谢 @Kai Petzke 的 python3 建议)。
实际上,就命令行上的json处理而言,python并不是我最喜欢的工具。对于简单漂亮的打印是可以的,但如果你想操纵 json,它可能会变得过于复杂。你很快就会需要编写一个单独的脚本文件,你最终可能会得到的地图的键是你的“some-key”(python unicode),这使得选择字段更加困难,并且并没有真正朝着漂亮的打印方向发展。
你也可以使用 jq:
jq . some.json
你会得到颜色作为奖励(并且更容易扩展)。
附录:评论中有一些混淆,一方面使用 jq 处理大型 JSON 文件,另一方面使用非常大的 jq 程序。为了漂亮地打印由单个大型JSON实体组成的文件,实际限制是RAM。为了漂亮地打印由单个真实世界数据数组组成的 2GB 文件,漂亮打印所需的“最大驻留集大小”是 5GB(无论是使用 jq 1.5 还是 1.6)。另请注意,jq 可以在 python 之后使用 。pip install jq
网友回答:
使用 or 关键字参数指定要使用的缩进量:indent
json.dump()
json.dumps()
>>> import json
>>>
>>> your_json = '["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> parsed = json.loads(your_json)
>>> print(json.dumps(parsed, indent=4))
[
"foo",
{
"bar": [
"baz",
null,
1.0,
2
]
}
]
要解析文件,请使用:json.load()
with open('filename.txt', 'r') as handle:
parsed = json.load(handle)
网友回答:
使用标准库模块读取数据后,使用 pprint 标准库模块显示解析后的数据。例:json
import json
import pprint
json_data = None
with open('file_name.txt', 'r') as f:
data = f.read()
json_data = json.loads(data)
pprint.pprint(json_data)
输出将如下所示:
{'address': {'city': 'New York',
'postalCode': '10021-3100',
'state': 'NY',
'streetAddress': '21 2nd Street'},
'age': 27,
'children': [],
'firstName': 'John',
'isAlive': True,
'lastName': 'Smith'}
请注意,此输出不是有效的 JSON;虽然它以漂亮的格式显示了 Python 数据结构的内容,但它使用 Python 语法来做到这一点。特别是,字符串(通常)括在单引号中,而 JSON 需要双引号。若要将数据重写为 JSON 文件,请使用 pprint.pformat:
pretty_print_json = pprint.pformat(json_data).replace("'", '"')
with open('file_name.json', 'w') as f:
f.write(pretty_print_json)
模板简介:该模板名称为【如何在 Python 中漂亮地打印 JSON 文件?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【Python】栏目查找您需要的精美模板。