使用 Python 打印漂亮的 JSON
JSON是一种非常常见的数据格式,但读取它可能有点困难,尤其是当JSON包含很少的空格时。如果您有Python2.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-mjson.tool
这将产生以下输出。
{ "one": 1, "two": [ { "bar": 2, "foo": 1 } ] }
您还可以使用此技术来测试脚本或curl请求,实际上任何生成JSON输出的内容都可以通过管道输入json.tool并正确格式化。这是将PHP脚本输出通过管道传输到json.tool的示例。
phpscript.php|python-mjson.tool
如果您正在测试生成JSON的Web服务,那么您可以使用直接curl命令进行测试,然后您可以通过管道json.tool查看输出。
curl-shttp://localhost/service|python-mjson.tool
调试内容时通常会发生的情况是将JSON输出复制到剪贴板,然后创建一个包含该输出的文件,然后您可以使用该工具对其进行格式化。更好的方法是直接从剪贴板复制内容并将其通过管道传输到json.tool命令中。在OSX上,您将使用pbpaste来执行此操作。
pbpaste|python-mjson.tool
如果您使用的是Linux,那么您可能已经安装了xclip,在这种情况下您可以使用它。
xclip-selectionclipboard-o|python-mjson.tool
最后,我发现很难记住此处所需命令的语法(更不用说字符数量),因此我倾向于创建一个别名以使其更易于理解。将以下内容添加到您的.bash_profile文件中。
aliasasjson='python-mjson.tool'
然后你可以通过asjson管道输出来做同样的事情,而不是完整的命令。
echo'{"one":1,"two":[{"foo":1,"bar":2}]}'|asjson
您应该注意的一件事是,这将按字母顺序对键进行排序,这在某些情况下可能会出现问题。