1

我有两个来自 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)

都错了。我认为问题出在我确实需要的“数据”部分。非常感谢您的帮助。谢谢。

4

3 回答 3

3
dict={"data": dict1["data"] +dict2["data"]}
于 2013-07-14T21:19:48.440 回答
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))}

这将适用于许多字典,甚至是遍历它们的迭代器。它不需要您在创建字典期间明确列出它们。

证明:http: //ideone.com/V1HHNR

于 2013-07-14T21:21:29.213 回答
0

update并且append不要对你的结构做任何假设,所以它们不能工作。您必须构建一个新字典:

dict3 = {'data': [dict1['data'] + dict2['data']]}

或修改现有的之一:

dict1['data'].extend(dict2['data'])
于 2013-07-14T21:20:17.040 回答