如何打印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

上一篇: How to prettyprint a JSON file?

下一篇: Mime type missing for .rar and .tar