0

我有一個列表的字典中它看起來像這樣:使用相同的密鑰和值到一個單一的詞典合併字典

{"items":[{"number":"98", "items": {"code": "X", "color": "Red"}},{"number":"98", "items": {"code": "Y", "color": "Blue"}},{"number":"62", "items": {"code": "B", "color": "Green"}}{"number":"62", "items": {"code": "A", "color": "Yellow"}}]} 

有沒有一種方法,我可以合併的每個「數字」的項目這些值是否一致成爲一個像這樣的列表?

{"items":[{"number":"98","items":[{"code":"X","color":"Red"}, {"code": "Y","color":"Blue"}]}, {"number":"62", "items": [{"code": "B", "color": "Green"},{"code": "A", "color":"Yellow"}]}]} 

回答

0

我能想到的最簡單的方法就是將所有'項目'分類到中間字典中,按'數字'分組。從那裏,將字典轉換爲所需的輸出是微不足道的。

inp = {"items":[{"number":"98", "items": {"code": "X", "color": "Red"}},{"number":"98", "items": {"code": "Y", "color": "Blue"}},{"number":"62", "items": {"code": "B", "color": "Green"}},{"number":"62", "items": {"code": "A", "color": "Yellow"}}]} 
d = dict() 
for i in inp['items']: 
    d[i['number']] = d.get(i['number'], list()) + [i['items']] 
out = {'items': [{'number': n, 'items': d[n]} for n in d.keys()]} 

輸出:

{'items': [{'number': '98', 'items': [{'code': 'X', 'color': 'Red'}, {'code': 'Y', 'color': 'Blue'}]}, {'number': '62', 'items': [{'code': 'B', 'color': 'Green'}, {'code': 'A', 'color': 'Yellow'}]}]} 
+0

哇,這正是我需要的太感謝你了!我一直在試圖找出最後一個小時。我想我應該多關注一下這個話題。 –

相關問題