使用 Python 打印漂亮的 JSON

JSON 是一种非常常见的数据格式,但读取它可能有点困难,尤其是当 JSON 包含很少的空格时。如果您有 Python 2.6 或更高版本,您可以使用json.tool来格式化 JSON,以便您可以正确读取它。这也是验证 JSON 字符串的好方法,这些字符串在上游导致错误之前必须手动编辑。

如果您有一个名为 file.json 的文件,其中包含一堆 JSON 输出,您可以使用 Python 以如下方式将其格式化为可读结构。

python -mjson.toolfile.json

您还可以将此输出直接写入一个文件,在本例中称为 formatted.json。

python -mjson.toolfile.json > formatted.json

此工具最常见的用途是从命令行(直接或通过脚本)通过管道将 JSON 传递给它。

echo '{"one":1,"two":[{"foo":1,"bar":2}]}' | python -m json.tool

这将产生以下输出。

{

    "one": 1,

    "two": [

        {

            "bar": 2,

            "foo": 1

        }

    ]

}

您还可以使用此技术来测试脚本或 curl 请求,实际上任何生成 JSON 输出的内容都可以通过管道输入json.tool并正确格式化。这是将 PHP 脚本输出通过管道传输到 json.tool 的示例。

phpscript.php| python -m json.tool

如果您正在测试生成 JSON 的 Web 服务,那么您可以使用直接 curl 命令进行测试,然后您可以通过管道json.tool查看输出。

curl -s http://localhost/service | python -m json.tool

调试内容时通常会发生的情况是将 JSON 输出复制到剪贴板,然后创建一个包含该输出的文件,然后您可以使用该工具对其进行格式化。更好的方法是直接从剪贴板复制内容并将其通过管道传输到json.tool命令中。在 OSX 上,您将使用 pbpaste 来执行此操作。

pbpaste | python -m json.tool

如果您使用的是 Linux,那么您可能已经安装了 xclip,在这种情况下您可以使用它。

xclip -selection clipboard -o | python -m json.tool

最后,我发现很难记住此处所需命令的语法(更不用说字符数量),因此我倾向于创建一个别名以使其更易于理解。将以下内容添加到您的 .bash_profile 文件中。

alias asjson='python -m json.tool'

然后你可以通过 asjson 管道输出来做同样的事情,而不是完整的命令。

echo '{"one":1,"two":[{"foo":1,"bar":2}]}' | asjson

您应该注意的一件事是,这将按字母顺序对键进行排序,这在某些情况下可能会出现问题。

以上是 使用 Python 打印漂亮的 JSON 的全部内容, 来源链接: utcz.com/z/355087.html

回到顶部