Есть ли правильный способ обновить словарь и добавить этот словарь в список, не вызывая дублирования. Это для использования с netmiko, и моя цель - сделать его немного динамичным c и гибким, особенно со схемой именования.
#!/usr/bin/python
import re
hosts_info = []
host = {
'device_type': 'cisco_ios',
'ip': 'co-acc-sw',
'username': 'cisco',
'password': 'notapassword',
'secret': 'mrsecret'
}
for x in range(0, 4):
if x < 2:
host.update({"ip": "core-switch" + str(x)})
elif x > 2:
host.update({"ip": "access-switch" + str(x - 1)})
hosts_info.append(host)
print(hosts_info)
Текущий вывод:
[{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'}]
Я пытаюсь сделать так, чтобы он выглядел так:
[{'device_type': 'cisco_ios', 'ip': 'core-switch1', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'core-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch1', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'},
{'device_type': 'cisco_ios', 'ip': 'access-switch2', 'username': 'cisco', 'password': 'notapassword', 'secret': 'mrsecret'}]
Я могу заставить его работать, если я создам отдельные словари и добавлю их для разделения операторов if, просто интересно, есть ли лучший способ сделать это? спасибо.