我有一个字典列表,其中包含包含字典的字典列表:
super_data: [{'data': [{'attributes': {'stuff': 'test'
'stuff2': 'tester'}
}]}
{'data': [{'attributes': {'stuff': 'test2'
'stuff2': 'tester2'}
}]}
我有其他的字典列表,可能看起来像:
super_meta_data: [{'meta_data': [{'attributes': {'thing': 'testy'
'thing2': 'testy2'}
}]}
{'meta_data': [{'attributes': {'thing': 'testy3'
'thing': 'testy4'}
}]}
我想合并嵌套的字典列表,像这样:
super_data: [{'data': [{'attributes': {'stuff': 'test'
'stuff2': 'tester'}
}]
'meta_data': [{'attributes': {'thing': 'testy'
'thing2': 'testy2'}
}]
}
{'data': [{'attributes': {'stuff': 'test'
'stuff2': 'tester'}
}]
'meta_data': [{'attributes': {'thing': 'testy3'
'thing2': 'testy4'}
}]
}
我该怎么做呢?我在:
for i in super_data:
super_data.append([i][super_meta_data]
但是它抛出了:
TypeError: list index必须是整数或切片,不能是dict
欣赏任何见解!
您可以尝试以下操作,使用zip
:
for data, meta_data in zip(super_data, super_meta_data):
data.update(meta_data)
或者,使用列表推导式得到相同的结果:
super_data = [{**d, **md} for d, md in zip(super_data, super_meta_data)]
>>> super_data
[{'data': [{'attributes': {'stuff': 'test', 'stuff2': 'tester'}}],
'meta_data': [{'attributes': {'thing': 'testy', 'thing2': 'testy2'}}]},
{'data': [{'attributes': {'stuff': 'test2', 'stuff2': 'tester2'}}],
'meta_data': [{'attributes': {'thing': 'testy3', 'thing2': 'testy4'}}]}]
如果你想让你的基于索引的方法工作:
for i in range(len(super_data)):
super_data[i].update(super_meta_data[i])