将嵌套JSON转换为简单的字典JSON结构

2024-09-09 04:04:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在调用一个API,该API以以下格式返回数据:

{
  "records": [
    {
      "columns": [
        {
          "fieldNameOrPath": "Name",
          "value": "Burlington Textiles Weaving Plant Generator"
        },
        {
          "fieldNameOrPath": "AccountName",
          "value": "Burlington Textiles Corp of America"
        }
      ]
    },
    {
      "columns": [
        {
          "fieldNameOrPath": "Name",
          "value": "Dickenson Mobile Generators"
        },
        {
          "fieldNameOrPath": "AccountName",
          "value": "Dickenson plc"
        }
      ]
    }
  ]
}

为了正确地将此数据用于我的以下工作流,我需要一个结构,例如:

{
  "records": [
    {
      "Name": "Burlington Textiles Weaving Plant Generator",
      "AccountName": "Burlington Textiles Corp of America"
    },
    {
      "Name": "Dickenson Mobile Generators",
      "AccountName": "Dickenson plc"
    }
  ]
}

因此fieldNameOrPath值需要成为键,value值需要成为值

这个转换可以用python函数完成吗

这些条件适用于:

  • 我不知道每个columns列表元素中有多少个对象
  • 键和值名称可能不同(因此我需要将fieldNameOrPath作为键传递给函数,将value作为值传递给函数以指定它们)

Tags: columns数据函数nameapivaluegeneratorrecords
1条回答
网友
1楼 · 发布于 2024-09-09 04:04:32

我们假设来自API的数据存储在变量data中。为了将数据转换为您建议的格式,我们可以遍历所有记录,并通过遍历每个记录的列,使用fieldNameOrPath值作为键,value值作为字典值,为每个记录创建一个字典

trans_data = {"records": []}

for record in data["records"]:
    trans_record = {}
    for column in record["columns"]:
        trans_record[column["fieldNameOrPath"]] = column["value"]

    trans_data["records"].append(trans_record)

相关问题 更多 >