我经历过 How can I pretty-print JSON in (unix) shell script? 和“漂亮的打印JSON”上的其他Stackoverflow帖子,但它们只适用于简单的输入 等,
echo '{"foo": "lorem", "bar": "ipsum"}' | python -m json.tool
当我尝试做这样的事情时
echo '{"group" : {list : [1,2,3]}, "list" : ["a","b","c"]}' | python -m json.tool
失败了。
给我错误
Expecting property name enclosed in double quotes: line 1 column 13 (char 12)
PS:为什么我要尝试传递复杂的json输入?我正试图从here
解决问题1 编辑:感谢您及时回复。但是,如果我正在寻找像这样的输出呢
{
“团体”:{
“清单”:[1,2,3]
},
“list”:[“a”,“b”,“c”]
}
答案 0 :(得分:1)
您的JSON输入无效;你需要引用第一个list
键:
echo '{"group" : {"list" : [1,2,3]}, "list" : ["a","b","c"]}' | python -m json.tool
# ^^^^^^
只要您提供有效 JSON输入,该工具就可以处理任何复杂性的JSON。纠正错误后,Python输出:
$ echo '{"group" : {"list" : [1,2,3]}, "list" : ["a","b","c"]}' | python -m json.tool
{
"group": {
"list": [
1,
2,
3
]
},
"list": [
"a",
"b",
"c"
]
}
答案 1 :(得分:1)
在这一行:
"group" : {list : [1,2,3]}
你有无效的json。期望list
是一个字符串,而不是。因此错误。改变:
"group" : {"list" : [1,2,3]}
将解决问题。