我不确定这是否是我想要做的正确的标题但是,我有一个同一级别的列表,并且想要使用" vlan"作为顶级和"名称"作为一个属性。以下是清单。
vlans = ['vlan 1', 'name default', 'vlan 2', 'name non-default']
创建字典的代码。不确定我是否需要这样做。
for v in vlans:
type = v.split(" ")
value = dict([(type[0], type[1])])
print(value)
输出
{'vlan': '1'}
{'name': 'default'}
{'vlan': '2'}
{'name': 'non-default'}
标记为答案的回复将适用于此情况。这个输出也能实现吗?
{
"vlan 1":{
"name": "default"
},
"vlan 2":{
"name": "non-default"
}
}
答案 0 :(得分:0)
不确定您要找的是什么,所以这里有一个猜测:
vlans = ['vlan 1', 'name default', 'vlan 2', 'name non-default']
output = {}
for i in range(len(vlans)/2):
output[vlans[2*i]] = vlans[2*i + 1]
这会产生{'vlan 1': 'name default', 'vlan 2': 'name non-default'}
这是你的意思:
使用" vlan"作为顶级和"名称"作为属性
编辑:作为事后的想法,也许你想要摆脱" vlan"和"名称"到处。这是一种方法。
vlans = ['vlan 1', 'name default', 'vlan 2', 'name non-default']
output = {}
for i in range(len(vlans)/2):
vlan_number = (vlans[2*i].split())[1]
name = (vlans[2*i + 1].split())[1]
output[vlan_number] = name
这会产生输出:
{'1': 'default', '2': 'non-default'}
请注意,这里的vlan编号是字符串。要将它们作为整数,只需在最后一行中转换它们,例如:
output[int(vlan_number)] = name