簡體   English   中英

根據python中的鍵附加到JSON對象內的數組

[英]Append to an array inside a JSON object based on key in python

我有一些 JSON 我正在以以下格式循環。 我需要為源數據中找到的每個唯一主鍵創建一個對象並附加到數組。 我不確定如何在第一次遇到密鑰時創建對象並在下一次遇到時附加到它。 我最初的嘗試只是為源中的每個對象創建一個新對象。 僅在 js 中無法在 python 中找到示例。 源數據格式:

[
...
  {
    "Id": "NOT NEEDED DATA",
    "Client": {
      "Id": "KEY",
      "Name": "NOT NEEDED DATA"
    },
    "Name": "DESIRED DATAPOINT"
  },
...
]

所需格式:

[
...
    {
        "client_id": "KEY",
        "locations": ["DATA", "DATA"]
    }
...
]

偽代碼

for i in sourcedata:
    client_id = i['Client']['Id']
    location_name = i['Name']
    obj = {
        "client_id": client_id,
        "locations": [location_name]
    }
    new_array.append(obj)

您可以先迭代並構建一個字典,然后創建輸出格式中指定的字典列表。

from collections import defaultdict    

# create and populate the dictionary
d = defaultdict(list)
for i in sourcedata:
    client_id = i['Client']['Id']
    location_name = i['Name']
    d[client_id].append(location_name)

# build the result
res = [{"client_id": k, "locations": v} for k,v in d.items()]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM