我有两个字典来自JSON文件,看起来像这样:
dict1 = {"data": [{"text": "text1", "id": "id1"}, {"text": "text2", "id": "id2"}]}
dict2 = {"data": [{"text": "text3", "id": "id3"}, {"text": "text4", "id": "id4"}]}
我想从中创建以下内容:
dict = {"data": [{"text": "text1", "id": "id1"}, {"text": "text2", "id": "id2"}, {"text": "text3", "id": "id3"}, {"text": "text4", "id": "id4"}]}
我尝试了不同的方法,如:
dict = dict1.update(dict2)
或
dict = dict1.append(dict2)
两个都错了。我认为问题来自我需要的“数据”部分。真的很感激帮助。感谢。
答案 0 :(得分:3)
dict={"data": dict1["data"] +dict2["data"]}
答案 1 :(得分:0)
update
和append
不对您的结构做出任何假设,因此它们无法正常工作。你必须构建一个新词典:
dict3 = {'data': [dict1['data'] + dict2['data']]}
或修改现有的一个:
dict1['data'].extend(dict2['data'])
答案 2 :(得分:0)
不幸的是,这样做:
dict = dict1.update(dict2)
您实际上替换“data
”键的值,因此您会收到不同的结果(值未合并)。
试试这个:
from itertools import chain
your_dicts = [dict1, dict2] # Whatever you need, eg. iterable with many dicts
result = {"data": list(chain.from_iterable(d['data'] for d in your_dicts))}
这将适用于许多词典,甚至通过它们进行迭代。它不需要您在字典创建过程中明确列出它们。