2014-10-17 49 views
-1

我經歷的「漂亮打印JSON」 How can I pretty-print JSON in (unix) shell script? 和其他#1的帖子了,但他們只是簡單的輸入 想好,漂亮的打印複雜的JSON輸入

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]

},

「清單」: [「a」,「b」,「c」]

}

+1

您可能希望讓該網站知道他們的示例無效。 – 2014-10-17 07:56:45

+0

會這樣做。謝謝。 – 2014-10-17 08:00:10

回答

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" 
    ] 
} 
+0

謝謝。現在明白了。 – 2014-10-17 07:57:01

1

在這一行:

"group" : {list : [1,2,3]} 

你有無效的JSON。它期望list是一個字符串,而不是。因此錯誤。更改:

"group" : {"list" : [1,2,3]} 

將解決該問題。

+0

明白了。我的錯。 – 2014-10-17 07:53:26