[英]Storing list into dictionary from excel- part 2
我有一個列表,我想將其轉換為預期的字典輸出。
名單是:
[['Nodeb_IN_New',107,'class-default',['h10'],['h1'],[7],'dscp-fc-map',['ef']],[",","['h11'],['h2'],[5],'dscp-fc-map',['af41']],[",",",['l12','l13','l14'],['l1'],[4],'dscp-fc-map',['af11','af21','af31']],['Nokia_SRAN_S1-MME_X2_IN','102',",['h15','h16'],['h1'],[7],'dscp-fc-map',['ef','nc1']]]
和預期的字典輸出是:
res1= {'Nodeb_IN_New':{'policy_id':107,'default':'class-default','mplsa':['h10','h11','l12','l13','l14'],'mpls':['h1','h2','l1'],'qos':[7,5,4],'nokia':'dscp-fc-map','dscp':['ef','af41,'af11','af21','af31']},'Nokia_SRAN_S1-MME_X2_IN':{'policy_id':'102',default':",'mplsa':['h15','h16'],'mpls':['h1'],'qos':[7],'nokia':'dscp-fc-map','dscp':['ef','nc1']}}
這是我從列表中獲取的 excel:
如果 list[0] 表示第一列為空,則不要讀取 dscp_fc_map 請幫助代碼。
據我所知,您需要將列表列表轉換為字典,其中鍵是每個內部列表中的第一個項目,值是具有固定鍵和值的字典,從內部列表的第二個到最后一個元素。 在python中很容易:
lst = [
['key1', 'val1', 'val2', ['complex', 'val']],
['key2', 'val21', 'val22', ['complex2', 'val2']]
]
# First step
# result = {
# l[0]: l[1:] for l in lst
# }
# Second step
# dict(zip(['header1', 'header2', 'header3'], l))
#
# Combined
result = {
l[0]: dict(zip(['key11', 'key12', 'complexkey'], l[1:])) for l in lst
}
這使:
result =
{
'key1': {'key11': 'val1', 'key12': 'val2', 'complexkey': ['complex', 'val'] },
'key2': {'key11': 'val21', 'key12': 'val22', 'complexkey': ['complex2', 'val2']}
}
我希望這就是您正在尋找的內容,如果沒有,請詳細說明您的問題。
import pandas as pd
file_path = 'Check.xlsx'
df = pd.read_excel(file_path, encoding='utf-16')
df.rename( index={0:'policy_id', 1: 'default'...........}, inplace = True)
df = df.to_dict()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.