Python pretty print - 如何在shell脚本中pretty-print JSON?

Shell parse json / json / unix / command-line / format / pretty-print

是否有一个(Unix)shell脚本可以将JSON格式化为人类可读的形式?

基本上,我想让它转换以下内容。

{ "foo": "lorem", "bar": "ipsum" }

...变成这样的东西:

{
    "foo": "lorem",
    "bar": "ipsum"
}

16 revs, 12 users 29%AnC



Answer #1

我通常只是做。

echo '{"test":1,"test2":2}' | python -mjson.tool

并检索选择数据(在本例中,"test "的值)。

echo '{"test":1,"test2":2}' | python -c 'import sys,json;data=json.loads(sys.stdin.read()); print data["test"]'

如果JSON数据在一个文件中。

python -mjson.tool filename.json
curl -X GET -H "Authorization: Token wef4fwef54te4t5teerdfgghrtgdg53" http://testsite/api/ | python -mjson.tool