我真的在寻求一些专家意见。我想发现网络上的所有设备并存储他们的管理IP和接口名称以及IP,以便我可以调用它们。
我遇到的问题是存储信息的最有效结构。 dicts的词典是最好的方式吗?
所以我的计划就是有一个像这样的词典:
devices = {'dev1': {'mgmt_v4': '192.168.0.1',
'mgmt_v6': '192::1',
'interfaces': {'g0/0_v4': '10.10.10.1',
'g0/0_v6': '10::1',
'g0/1_v4': '20.20.20.2',
'g0/1_v6': '20::2'}}}
虽然我不确定这样做会有什么问题,其他人如何在python中处理它?</ p>
提前致谢。
答案 0 :(得分:0)
Dicts是一种非常灵活的工具,它们适用于快速原型制作。但是它们太灵活了:很容易错误地键入键值,而你缺乏一个很好的参考,你究竟是如何命名你的键。在您的结构中,您有两个位置,其中键是任意的:
Dicts是表达它们的自然方式。但设备属性具有固定的密钥集:mgmt_v4
,mvmt_v6
和interfaces
。最好用theese字段来诽谤一个班级。
class DeviceProperties(object):
def __init__(self, mgmt_v4, mgmt_v6, interfaces):
self.mgmt_v4 = mgmt_v4
self.mgmt_v6 = mgmt_v6
self.interfaces = interfaces
然后你将它们存储为
{
"dev1" : DeviceProperties(
'192.168.0.1',
'192::1',
{
'g0/0_v4': '10.10.10.1',
'g0/0_v6': '10::1',
'g0/1_v4': '20.20.20.2',
'g0/1_v6': '20::2'
})
}