<p>新的代码,其他没有工作正是我所期待的</p>
<pre><code>def f_create_port_data(a_swichport_data):
v_port_data=[{}]
v_switch_ports=[]
for l_device_port_list in a_swichport_data:
v_device_port_data=[]
for device,key in l_device_port_list.iteritems():
for vlan in l_device_port_list[device]:
for port in l_device_port_list[device][0]['switch_ports']:
v_switch_ports.append(port['switch_name']+"="+port['name'])
v_switch_ports_list=list(set(v_switch_ports))
for l_port in v_switch_ports_list:
v_vlan_list=[]
v_location=l_port.split('=')
for l_vlan in l_device_port_list[device]:
for l_switchport in l_vlan['switch_ports']:
if (v_location[0]==l_switchport['switch_name'] and v_location[1]==l_switchport['name']):
v_vlan_list.append(l_vlan['vlan_number'])
if (not v_port_data[0].has_key(device)):
v_port_data[0][device]=list()
v_port_data[0][device].append(dict())
if (not v_port_data[0][device][0].has_key(v_location[0])):
v_port_data[0][device][0][v_location[0]]=list()
v_port_data[0][device][0][v_location[0]].append(dict())
if (not v_port_data[0][device][0][v_location[0]][0].has_key(v_location[1])):
v_port_data[0][device][0][v_location[0]][0][v_location[1]]=v_vlan_list
return v_port_data
</code></pre>