original_list = [{"record1": 1, "record2": "loremipsum1", "record3": "loremipsum2", "record4": "loremipsum3"},
{"record1": 2, "record2": "loremipsum4", "record3": "loremipsum5", "record4": "loremipsum6"},
{"record1": 3, "record2": "loremipsum7", "record3": "loremipsum8", "record4": "loremipsum9"},
{"record1": 4, "record2": "loremipsum10", "record3": "loremipsum12", "record4": "loremipsum13"},
{"record1": 5, "record2": "loremipsum11", "record3": "loremipsum12", "record4": "loremipsum13"}]
to_append = [{"record1": 1, "new_record": "new1"},
{"record1": 2, "new_record": "new2"}]
output = [{"record1": 1, "record2": "loremipsum1", "record3": "loremipsum2", "record4": "loremipsum3", "new_record": "new1"},
{"record1": 2, "record2": "loremipsum4", "record3": "loremipsum5", "record4": "loremipsum6", "new_record": "new2"},
{"record1": 3, "record2": "loremipsum7", "record3": "loremipsum8", "record4": "loremipsum9"},
{"record1": 4, "record2": "loremipsum10", "record3": "loremipsum12", "record4": "loremipsum13"},
{"record1": 5, "record2": "loremipsum11", "record3": "loremipsum12", "record4": "loremipsum13"}]
new_record如果record1欄位的值相同,則輸出是將 附加到串列中的字典,如果new_record不存在則不執行任何操作。如果使用 itertools 更好。
我嘗試了一些解決方案,但它僅在new_record存在時回傳一個帶有附加字典的陣列- 忽略所有其他字典。
有人可以幫忙嗎?TIA
uj5u.com熱心網友回復:
您可以original_array根據中的每個字典檢查每個字典array_to_append;如果您record1在任何特定對中找到匹配項,那么update原始對:
for d1 in original_array:
for d2 in array_to_append:
if d1['record1'] == d2['record1']:
d1.update(d2)
導致:
>>> original_array
[{'record1': 1,
'record2': 'loremipsum1',
'record3': 'loremipsum2',
'record4': 'loremipsum3',
'new_record': 'new1'},
{'record1': 2,
'record2': 'loremipsum4',
'record3': 'loremipsum5',
'record4': 'loremipsum6',
'new_record': 'new2'},
{'record1': 3,
'record2': 'loremipsum7',
'record3': 'loremipsum8',
'record4': 'loremipsum9'},
{'record1': 4,
'record2': 'loremipsum10',
'record3': 'loremipsum12',
'record4': 'loremipsum13'},
{'record1': 5,
'record2': 'loremipsum11',
'record3': 'loremipsum12',
'record4': 'loremipsum13'}]
需要注意以下幾點:
- 這是修改
original_array和里面的字典,而不是創建新物件。 KeyError如果任何字典沒有'record1'鍵,這會引發一個。如果您希望某些字典沒有該欄位,則必須添加處理該欄位。- 如果有多個條目
array_to_append與'record1'給定字典匹配,則“new_records”可能會相互覆寫。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/358211.html
