我有超过100个我想使用该脚本的交换机或路由器。当我在这样的json文件中插入IP地址时,主代码工作正常...我试图将json文件(devices.json)改为这样:
[
{
"ip" : "192.168.x.x",
"device_type" : "hp_procurve"
},
{
"ip" : "192.168.x.x",
"device_type" : "cisco-ios"
}
]
代码很好,但是当我查看结果时,我看到了所有这些,我无法判断哪个结果属于哪个开关。
我想将它用于100开关,但结果我无法找出哪些结果属于谁。
所以我尝试了这个:
devices = [switch101,switch102]
switch101={
"ip" : "192.168.x.x",
"device_type" : "hp_procurve"
}
switch102={
"ip" : "192.168.x.x",
"device_type" : "cisco-ios"
}
stores = [str(switch101),str(switch102)]
这给了我以下错误:
NameError: name 'switch101' is not defined**
答案 0 :(得分:1)
似乎这里的问题可能是您在声明之前尝试访问url="https://technet.microsoft.com/enus/library/hh135098(v=exchg.150).aspx"
r = requests.get(url)
soup = BeautifulSoup(r.content, 'lxml')
table = soup.find_all('table', attrs={"responsive": "true"})[0]
for rows in table.find_all('tr')[1:2]:
item = []
for val in rows.find_all('td'):
item.append(val.text.strip())`
。下面的代码不应该给你这个错误(除非我完全误解了这里发生了什么):
switch101
但是,如果您想将数据转换为json,这可能不是存储数据的最佳方式。相反,为什么不直接存储字典,如roganjosh's comment所示?
switch101={
"ip" : "192.168.x.x",
"device_type" : "hp_procurve"
}
switch102={
"ip" : "192.168.x.x",
"device_type" : "cisco-ios"
}
devices = [switch101,switch102]