1 回答

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個(gè)贊
我想你是在問如何根據(jù)其中一個(gè)鍵的值從字典列表中刪除一個(gè)項(xiàng)目。你有:
new_list = [{k: v for k, v in d.items() if v != 'pandora'} for d in JsonDictList]
當(dāng)你給它這個(gè)輸入時(shí):
[{"Service": "spotify", "Password": "5QF50W,!UG"}, {"Service": "pandora", "Password": "E=b]|6]-HJ"}]
"Service": "pandora"
...當(dāng)您真的希望它刪除整個(gè)字典時(shí),它會(huì)刪除鍵/值對(duì){"Service": "pandora", "Password": "E=b]|6]-HJ"}
。您的問題還提到了追加(即在集合末尾添加一些內(nèi)容),但我不清楚您遇到了什么麻煩。所以我只是在回答如何從字典列表中刪除一個(gè)元素。
從具有服務(wù)“潘多拉”的列表中刪除字典
所以首先,我們可以這樣做:
new_list = [d for d in JsonDictList if d['Service'] != 'pandora']
當(dāng)它有一個(gè)名為“Service”的鍵與一個(gè)值“pandora”配對(duì)時(shí),它會(huì)從列表中刪除每個(gè)元素。它還假設(shè)每個(gè)元素都有一個(gè)名為“Service”的鍵,如果其中一個(gè)沒有,則會(huì)導(dǎo)致異常。如果其中一些可能沒有“服務(wù)”密鑰,您可以改為執(zhí)行以下操作:
new_list = [d for d in JsonDictList if d.get('Service') != 'pandora']
從列表中刪除在任何領(lǐng)域都有“潘多拉”的字典
您的示例還將刪除等于“pandora”的密碼。我認(rèn)為這不是故意的。但是如果你確實(shí)想刪除任何以 'pandora' 作為其任何值的字典,你可以這樣做:
new_list = [d for d in JsonDictList if not any(v == 'pandora' for v in d.values())]
添加回答
舉報(bào)