在字典中使用 for 循环
Use for loop with dictionary
我正在使用 Napalm 更改许多网络设备的主机名。由于每个设备的配置都不同,我需要脚本根据每个设备的 IP 地址为每个设备分配正确的配置。这似乎是字典的最佳选择。
devicelist = {'10.255.32.1': 'device1.cfg', '10.255.32.5': 'device2.cfg'}
我需要帮助在下面的脚本中为每个 IP 地址调用键值。我已经突出显示了需要这样做的代码行。
from napalm import get_network_driver
devicelist = ['10.255.32.1',
'10.255.32.5'
]
for ip_address in devicelist:
print ("Connecting to " + str(ip_address))
driver = get_network_driver('ios')
iosv = driver(ip_address, 'admin', 'password')
iosv.open()
**iosv.load_merge_candidate(filename='device1.cfg')**
diffs = iosv.compare_config()
if len(diffs) > 0:
print(diffs)
iosv.commit_config()
else:
print('No changes required.')
iosv.discard_config()
iosv.close()
您要求通过字典上的键进行简单访问,并结合字典上的 for 循环,这自动是键上的 for 循环。最小示例:
devicelist = {'10.255.32.1': 'device1.cfg', '10.255.32.5': 'device2.cfg'}
for ipAdress in devicelist:
print("This IP : {} maps to this name: {}".format(ipAdress, devicelist[ipAdress]))
输出:
This IP : 10.255.32.1 maps to this name: device1.cfg
This IP : 10.255.32.5 maps to this name: device2.cfg
我正在使用 Napalm 更改许多网络设备的主机名。由于每个设备的配置都不同,我需要脚本根据每个设备的 IP 地址为每个设备分配正确的配置。这似乎是字典的最佳选择。
devicelist = {'10.255.32.1': 'device1.cfg', '10.255.32.5': 'device2.cfg'}
我需要帮助在下面的脚本中为每个 IP 地址调用键值。我已经突出显示了需要这样做的代码行。
from napalm import get_network_driver
devicelist = ['10.255.32.1',
'10.255.32.5'
]
for ip_address in devicelist:
print ("Connecting to " + str(ip_address))
driver = get_network_driver('ios')
iosv = driver(ip_address, 'admin', 'password')
iosv.open()
**iosv.load_merge_candidate(filename='device1.cfg')**
diffs = iosv.compare_config()
if len(diffs) > 0:
print(diffs)
iosv.commit_config()
else:
print('No changes required.')
iosv.discard_config()
iosv.close()
您要求通过字典上的键进行简单访问,并结合字典上的 for 循环,这自动是键上的 for 循环。最小示例:
devicelist = {'10.255.32.1': 'device1.cfg', '10.255.32.5': 'device2.cfg'}
for ipAdress in devicelist:
print("This IP : {} maps to this name: {}".format(ipAdress, devicelist[ipAdress]))
输出:
This IP : 10.255.32.1 maps to this name: device1.cfg
This IP : 10.255.32.5 maps to this name: device2.cfg