apdb = {'AP Database': [{'AP Type': '110H',
'Name': 'varagu',
'Public IP': '100.20.300.400',
'Wired MAC Address': 'aa:bb:cc:dd:ee:11'},
{'AP Type': '110H',
'Name': 'thinai',
'Public IP': '100.20.300.500',
'Wired MAC Address': 'aa:bb:cc:dd:ee:22'},
{'AP Type': '110H',
'Name': 'Ragi',
'Public IP': '100.20.300.600',
'Wired MAC Address': 'aa:bb:cc:dd:ee:33'}]}
ap_database = apdb.get('AP Database')
apall = ap_database[0], ap_database[1], ap_database[2]
for ap in apall:
public = ap.__getitem__('Public IP')
name = ap.__getitem__('Name')
ip_list = ['100.20.300.400', '100.20.300.500', '100.20.300.700']
for ip in ip_list:
if ip == public:
print public + ' ' + name + ' ' + "Success"
我受够了。我需要将“ip”与“public”映射。你知道吗
预期结果:
结果1:(这需要存储在变量中,因为我需要在邮件正文中发送)
100.20.300.400瓦拉古成功
100.20.300.500蒂奈成功
结果2:(这需要存储在一个变量中,也需要通过单独的邮件发送)
100.20.300.600拉吉故障
请参见下面的一些内联注释
有很多方法可以实现你的目标。你知道吗
解析apdb时,可以检查“Public IP”是否在
ip_list
中,然后附加failed_ip
或succeed_ip
列表。你知道吗然后,您只需处理这两个列表:
结果:
我对你的代码做了一些调整: 1)
apall = ap_database[0], ap_database[1], ap_database[2]
此赋值不是必需的,因为ap_database = apdb.get('AP Database')
这将使ap\u数据库已经成为一个列表2)
ip_list = ['100.20.300.400', '100.20.300.500', '100.20.300.700']
这应该是循环外的,不需要为每个循环重新分配3)代替下面的2行,您可以直接在ip\列表中搜索公共ip,如:
if public in ip_list:
4)不使用getitem而只使用get方法对我来说更具可读性(仅对我而言,如果您愿意,您可以使用getitem)
相关问题 更多 >
编程相关推荐