这个“NameError”是什么意思?

时间:2017-05-08 16:44:02

标签: python json

我有超过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**

1 个答案:

答案 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]