如何不覆盖json.loads中的索引

时间:2013-10-01 11:47:10

标签: python json dictionary

我有以下json,我想在python中加载它而不覆盖多个索引:

{
  "data": [
    {
      "HOSTNAME": "test",
      "STATUS": "200",
      "TYPE": "linux",
      "CPU": {
        "SRC": "src",
        "LINK": "link",
        "LABEL": "cpu"
      },
      "CPU": {
        "SRC": "src",
        "LINK": "link",
        "LABEL": "cpu"
      },
      "MEMORY": {
        "SRC": "src",
        "LINK": "link",
        "LABEL": "cpu"
      }
    }
  ]
}

我正在使用:

 json.loads("HERE COMES THE JSON")

结果覆盖索引,例如:

 {
 data:
     [
     {
      "HOSTNAME": "test",
      "STATUS": "200",
      "TYPE": "linux",
      "CPU": {
             "SRC": "src",
             "LINK": "link",
             "LABEL": "cpu"
             },
      "MEMORY": {
                "SRC": "src",
                "LINK": "link",
                "LABEL": "cpu"
                }
      }
      ]
 }

请注意,只有一个CPU。

有没有办法不覆盖它?

1 个答案:

答案 0 :(得分:3)

该文件无效JSON,您无法使用json模块以您希望的方式对其进行解析。

更新:似乎可以借助object_pairs_hook参数来json.load(s);请参阅SimpleJson handling of same named entities以获取示例。