【问题标题】:Pretty print complex JSON input漂亮的打印复杂的 JSON 输入
【发布时间】:2014-10-17 07:49:53
【问题描述】:

我经历过 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]

},

"列表" : ["a","b","c"]

}

【问题讨论】:

  • 您可能想让该网站知道他们的样本无效。
  • 会这样做的。谢谢。

标签: python json command-line pretty-print


【解决方案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"
    ]
}

【讨论】:

    【解决方案2】:

    在这一行:

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

    你有无效的 json。它期望 list 是一个字符串,但事实并非如此。因此错误。改变:

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

    会解决问题。

    【讨论】:

      猜你喜欢
      • 2017-05-01
      • 2014-05-19
      • 1970-01-01
      • 2021-01-31
      • 2014-05-12
      • 1970-01-01
      • 2017-11-03
      • 2011-05-05
      相关资源
      最近更新 更多