1

次のような JSON ファイルからの 2 つの辞書があります。

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

update構造について仮定をappendしないでください。そのため、それらは機能しません。新しい辞書を作成する必要があります。

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

または、既存のもののいずれかを変更します。

dict1['data'].extend(dict2['data'])
于 2013-07-14T21:20:17.040 に答える
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 に答える