에 의해 두 사전을 결합하는 방법은 두 dicts이 있습니다파이썬은 키
A={'a':{"total":5,"all":[100,101]},'b':{"total":10,"all":[200,201]}}
B={'a':{"q1":"a","q2":"aa"},'b':{"q1":"b"},'c':{"q1":"c","q2":"ccc"}}
내가 그들의 키 (를 A, B, C) 다음과 같은 기준으로 dicts의 모든 값을 결합 :
import collections
super_dict = collections.defaultdict(set)
for k, v in chain(A.items(), B.items()):
#related_datasets = v.get("all")
#total_downloads = v.get("total")
#query_1 = v.get("q1")
#query_2 = v.get("q2")
super_dict.setdefault(k, []).append(v)
defaultdict(set,
{'a': [{'all': [100, 101], 'total': 5}, {'q1': 'a', 'q2': 'aa'}],
'b': [{'all': [200, 201], 'total': 10}, {'q1': 'b'}],
'c': [{'q1': 'c', 'q2': 'ccc'}]})
는 그러나, 나는 다음과 같이 super_dict을 생산하려면 :
이것은 (super_dict)의 결과
{'a': {'all': [100, 101], 'q1': 'a', 'q2': 'aa', 'total': 5},
'b': {'all': [200, 201], 'q1': 'b', 'total': 10},
'c': {'q1': 'c', 'q2': 'ccc'}}
도움이 되겠습니다.
import collections
super_dict = {}
for k, v in chain(A.items(), B.items()):
related_datasets = v.get("all")
total_downloads = v.get("total")
query_1 = v.get("q1")
query_2 = v.get("q2")
vkeys = v.keys()
if k in super_dict.keys():
super_dict[k].update(v)
else:
super_dict[k]= v
이것은 훨씬 간단합니다! 고마워요. – kitchenprinzessin
사실 더 간단합니다. 편집을 참조하십시오 ... – Julien