如何打印JSON文件?
我有一个JSON文件,这是一个混乱,我想prettyprint - 什么是在Python中做到这一点最简单的方法? 我知道PrettyPrint需要一个“对象”,我认为它可以是一个文件,但我不知道如何传递文件 - 只是使用文件名不起作用。
json
模块已经使用indent
参数实现了一些基本的漂亮打印:
>>> import json
>>>
>>> your_json = '["foo", {"bar":["baz", null, 1.0, 2]}]'
>>> parsed = json.loads(your_json)
>>> print json.dumps(parsed, indent=4, sort_keys=True)
[
"foo",
{
"bar": [
"baz",
null,
1.0,
2
]
}
]
要解析文件,请使用json.load
:
with open('filename.txt', 'r') as handle:
parsed = json.load(handle)
您可以在命令行上执行此操作:
cat some.json | python -m json.tool
(正如在问题评论中已经提到的那样)。
实际上python并不是我最喜欢的工具,只要在命令行上处理json就可以了。 对于简单漂亮的打印是好的,但如果你想操纵JSON,它可能会变得过于复杂。 你很快就需要编写一个单独的脚本文件,你最终可以得到其键是“某个键”(python unicode)的地图,这使得选择字段变得更加困难,并且不会真的朝着漂亮的方向前进 - 印刷。
我使用jq。 以上可以通过以下方式完成:
cat some.json | jq ''
并且你可以获得颜色作为奖励(并且更容易扩展)。
Pygmentize + Python json.tool =漂亮的打印和语法高亮
Pygmentize是一个杀手级的工具。 看到这个。
我将python json.tool和pygmentize结合起来
echo '{"foo": "bar"}' | python -m json.tool | pygmentize -l json
有关Pygmentize安装说明,请参阅上面的链接。
这个演示如下图所示:
链接地址: http://www.djcxy.com/p/8261.html