2013-11-22 87 views
-3

我有字典的n個包含值列表像郵編兩個字典包含一個列表在Python

{"1":[{'q': ['Data'], 'q1': '110'}]} 

{"2":[{'q2':["other Data"], "q3" : "exp"},{'q2':["other Data2"], "q3" : "exp2"}]} 

我想以這種格式輸出: -

{"1":[{'q': ['Data'], 'q1': '110'}],"2":[{'q2':["other Data"], "q3" : "exp"}]} 
{"2":{'q2':["other Data2"], "q3" : "exp2"} 

手段拉鍊,或者我們可以字典鍵的拆分基礎,併爲每個鍵添加一個值(如果存在)。

+0

所需輸出缺少一些右括號,和你的數據結構已經足夠混亂無錯別字。 – askewchan

+0

@askewchan更新問題。 – Arpit

回答

1

是否dict1.update(dict2)對您有用?這將僅更新dict1dict2中的值。

編輯:

這可能會實現:

dicts=[] 
dicts.append({"1":[{'q': ['Data'], 'q1': '110'}]}) 
dicts.append({"2":[{'q2':["other Data"], "q3" : "exp"},{'q2':["other Data2"], "q3" : "exp2"}]}) 

a=[[{key: j} for key in d2 for j in d2[key]] for d2 in dicts ] 

nmax=max(len(x) for x in a) 

newdicts=[dict() for i in range(nmax)] 

for i in range(nmax):  
    for j in range(len(a)): 
     if i < len(a[j]):  
      newdicts[i].update(a[j][i]) 

for i in newdicts: 
    print i 

這給了我:

{'1': {'q': ['Data'], 'q1': '110'}, '2': {'q3': 'exp', 'q2': ['other Data']}} 
{'2': {'q3': 'exp2', 'q2': ['other Data2']}} 
+0

我有字典中的值列表,所以我想分裂在一個鍵中包含相同數量的值 – Arpit

相關問題