假设我有一个JSON对象列表:
list = [{"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 2, "Zone": "A"}, "geo": {"x": 10, "y": 20}}]},{"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 3, "Zone": "D"}, "geo": {"x": 21, "y": 8}}]},{"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 5, "Zone": "C"}, "geo": {"x": 15, "y": 10}}]}]
我想遍历这个列表并拥有一个'Master‘json对象:
masterJson = {}
for item in list:
print(item)
这里的问题是,我不希望每次新的迭代都“更新”masterJson对象。本质上,子对象"Name“和"Date”总是相同的。我想要做的只是添加到"features“子对象列表中,以便在masterJson对象中看起来像这样:
masterJson = {"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 2, "Zone": "A"}, "geo": {"x": 10, "y": 20}}, {"attributes": {"OID": 3, "Zone": "D"}, "geo": {"x": 21, "y": 8}}, {"attributes": {"OID": 5, "Zone": "C"}, "geo": {"x": 15, "y": 10}}]}
我现在的想法是拥有类似下面这样的东西,但我不能让它对我很有效。我该如何实现这一点?
list = [{"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 2, "Zone": "A"}, "geo": {"x": 10, "y": 20}}]},{"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 3, "Zone": "D"}, "geo": {"x": 21, "y": 8}}]},{"Name": "NY", "Date": "12/2008", "features": [{"attributes": {"OID": 5, "Zone": "C"}, "geo": {"x": 15, "y": 10}}]}]
masterJson = list[0]
for item in list:
for item["features"]:
masterJson["features"] = (item["features"])
print(masterJson)
另一种变体:
masterJson = list[0]
for item in list:
for k in item:
if k not in masterJson["features"]
masterJson["features"] = (item["features"])
print(masterJson)
注意:结果似乎是"features": "features"
发布于 2018-08-24 02:48:07
此循环位添加masterJson
字典中的特征部分。
tempList = []
masterJson = {}
masterJson['Name'] = list[0]['Name']
masterJson['Date'] = list[0]['Date']
for item in list:
tempList.extend(item['features'])
masterJson['features']=tempList
在使用此部件之前,将Name
和Date
部件添加到masterJson
字典中,您就拥有了所需的结构。tempList
是保存不同features
字典的临时列表。干杯。
https://stackoverflow.com/questions/51989564
复制相似问题