Я новичок в python, у меня есть вложенный список, в котором я хочу создать словарь, как показано ниже, используя эти данные.
Это мой ввод:
input =
[['103.29.45.128/27', '32', 'ge', 'MPLS-LOOPBACK'],
['100.127.0.0/23', '32', 'ge', 'MPLS-LOOPBACK'],
['100.92.57.168/30', '', '', 'PS_S1']
]
Ожидаемый результат должен бытькак показано ниже:
result = "prefix_set": [
{
"prefix_entry": [
{
"prefix": "103.29.45.128/27",
"prefix_match": "32",
"prefix_condition": "ge"
},
{
"prefix": "100.127.0.0/23",
"prefix_match": "32",
"prefix_condition": "ge"
}
],
"prefix_name": "MPLS-LOOPBACK"
},
{
"prefix_entry":
[
{
"prefix": "100.92.57.168/30",
"prefix_match": "",
"prefix_condition": ""
}
],
"prefix_name": "PS_S1"
}
]
Пожалуйста, помогите мне получить желаемый вывод.
Я пробовал этот код:
fsm_results = [['103.29.45.128/27', '32', 'ge', 'MPLS-LOOPBACK'],
['100.127.0.0/23', '32', 'ge', 'MPLS-LOOPBACK'],
['100.92.57.168/30', '', '', 'PS_S1']
]
prefix_name = []
for i in fsm_results:
prefix_name1 = i[3]
if prefix_name1 not in prefix_name:
prefix_name.append(prefix_name1)
temp1 = []
for i in range(0,len(prefix_name)):
temp = {"prefix_name": prefix_name[i]}
for j in range(0,len(fsm_results)):
if temp['prefix_name'] == fsm_results[j][3]:
b = {"prefix":fsm_results[j][0],'prefix_match':fsm_results[j][1],'prefix_condition':fsm_results[j][2]}
temp.update(b)
temp1.append(temp)
print(temp1)
И я получаю вывод, как это:
[{'prefix_name': 'MPLS-LOOPBACK', 'prefix': '100.127.0.0/23', 'prefix_match': '32', 'prefix_condition': 'ge'}, {'prefix_name': 'PS_S1', 'prefix': '100.92.57.168/30', 'prefix_match': '', 'prefix_condition': ''}]