Сохранение списка в словарь из Excel - часть 2 - PullRequest
0 голосов
/ 25 июня 2019

У меня есть список, и я хочу преобразовать его в ожидаемый словарь.

список:

[['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 sheet

если list [0] означает, что первый столбец пуст, не читайте dscp_fc_map Пожалуйста, помогите с кодом.

Ответы [ 2 ]

0 голосов
/ 25 июня 2019

Надеюсь, это то, что вы ищете, если нет, просьба проработать ваш вопрос.

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()
0 голосов
/ 25 июня 2019

Насколько мне известно, вам нужно преобразовать список списков, чтобы определить, где ключи - это первые элементы в каждом внутреннем списке, а значение - с фиксированными ключами и значениями от второго до последнего элемента внутреннего списка. Это довольно легко в 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']}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...