如何将一个嵌套的字典列表与其他字典列表合并?



我有一个字典列表,其中包含包含字典的字典列表:

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])

相关内容

  • 没有找到相关文章

最新更新