[英]How to iterate through list of dictionary, extract values and fill in another data dictionary in python
我有一個字典列表如下。
[
{'name':['mallesh'],'email':['m@gmail.com']},
{'name':['bhavik'],'ssn':['1000011']},
{'name':['jagarini'],'email':['m@gmail.com'],'phone':['111111']},
{'name':['mallesh'],'email':['m@gmail.com'],'phone':['1234556'],'ssn':['10000012']}
]
我想根據鍵從這些字典中提取信息,將其信息保存在另一個字典中。
xml_master_dict={'name':[],'email':[],'phone':[],'ssn':[]}
這里 xml_master_dict 應該填寫相應的關鍵信息,如下所示。
在拳頭字典中,我們有這個:
{'name':['mallesh'],'email':['m@gmail.com']}
xml_master_dict name 和 email 中的 key 只會更新為當前值,如果字典中不存在任何 key,則應填寫 None。 在這種情況下 phone 和 ssn 將為 None
這是預期的 output:
{
'name':['mallesh','bhavik','jagarini','mallesh'],
'email':['m@gmail.com',None,'m@gmail.com','m@gmail.com'],
'phone':[None,None,'111111','1234556'],
'ssn':[None,'1000011',None,'10000012'],
}
pd.DataFrame({
'name':['mallesh','bhavik','jagarini','mallesh'],
'email':['m@gmail.com',None,'m@gmail.com','m@gmail.com'],
'phone':[None,None,'111111','1234556'],
'ssn':[None,'1000011',None,'10000012'],
})
您可以定義 function 以獲取字典值的第一個元素(如果鍵不存在,則為None
):
def first_elem_of_value(record: dict, key: str):
try:
return record[key][0]
except KeyError:
return None
然后用一個理解構建主字典:
xml_master_dict = {
key: [
first_elem_of_value(record, key)
for record in data
]
for key in ('name', 'email', 'phone', 'ssn')
}
>>> xml_master_dict
{'name': ['mallesh', 'bhavik', 'jagarini', 'mallesh'], 'email': ['m@gmail.com', None, 'm@gmail.com', 'm@gmail.com'], 'phone': [None, None, '111111', '1234556'], 'ssn': [None, '1000011', None, '10000012']}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.