从其他JSON字典创建自己的JSON对象

时间:2020-02-22 02:00:15

标签: python json

我想创建自己的JSON对象,因为原始JSON数据包含一些不需要的不必要数据。现在,我要提取整个['values']部分并将其放入我自己的JSON对象中。

需要提取的原始JSON:

{
  "headers": [
    "node",
    "subtask id",
    "status",
    "progress"
  ],
  "values": [
    [
      "testnet-gf-devel-0 git",
      "b4f34a0c-5446-11ea-8c29-1e0f691c9a55",
      "Finished",
      "100.0 %"
    ],
    [
      "Ruggu git",
      "b4f4cdde-5446-11ea-9018-1e0f691c9a55",
      "Finished",
      "100.0 %"
    ]
  ]
}

我希望自己的JSON对象看起来像什么:

{
"values": [
        [
          "testnet-gf-devel-0 git",
          "b4f34a0c-5446-11ea-8c29-1e0f691c9a55",
          "Finished",
          "100.0 %"
        ],
        [
          "Ruggu git",
          "b4f4cdde-5446-11ea-9018-1e0f691c9a55",
          "Finished",
          "100.0 %"
        ]
      ]
}

代码:

async def parse_subtask_show(self, json_payload):
        json_object = json.loads(json_payload)

        data = {}
        for subtask in json_object['values']:
            data['subtasks'] = subtask[0]
            data['subtasks'] = subtask[1]
            data['subtasks'] = subtask[2]
            data['subtasks'] = subtask[3]
        json_data = json.dumps(data)
        print(json_data)

但这只是输出{"subtasks": "100.0 %"}。我想我可能会覆盖某些数据?我将如何处理?

3 个答案:

答案 0 :(得分:1)

您正在做的事情比需要做的要困难得多。只需提取所需的对象即可。

myobject = {"values": json_object["values"]}
json_data = json.dumps(myobject)
print(json_data)

我不确定data['subtasks']与此相关,您没有在期望的结果中显示出来。

答案 1 :(得分:1)

这可以实现您想要的。

negate()

答案 2 :(得分:1)

我想我可能会覆盖一些数据?

这就是您正在做的,即在这里:

async def parse_subtask_show(self, json_payload):
        json_object = json.loads(json_payload)
        json_data = json.dumps(json_object['values'])
        print(json_data)

您只需覆盖键 for subtask in json_object['values']: data['subtasks'] = subtask[0] data['subtasks'] = subtask[1] data['subtasks'] = subtask[2] data['subtasks'] = subtask[3] 上的所有内容,因此它将仅保留最后一个。

我想你只是想要

'subtasks'