簡體   English   中英

如何遍歷字典列表,提取值並填寫 python 中的另一個數據字典

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM