使用pynetbox从CSV批量创建NetBox设备无报错但未成功的问题求助
用pynetbox从CSV批量创建NetBox设备无报错但未成功的问题求助
我正在尝试用pynetbox从CSV文件批量创建NetBox设备,但遇到了一个棘手的问题——代码运行完全没有报错,但设备就是没出现在NetBox里。我已经做了几个测试,单独创建设备是成功的,但批量处理CSV就不行,实在搞不清楚哪里出问题了,想请大家帮忙看看!
首先是我最初写的代码:
import os import csv import pynetbox from pynetbox import api def populate_device(dev): nb = pynetbox.api( url='<NetboxURL>', token='<Token>' ) nb.dcim.devices.create( name=dev, device_type=89, role=40, site=9, ) os.chdir('<Directory>') with open('<File>.csv', 'r') as file: reader = csv.DictReader(file) for row in reader: dev=row["name"] populate_device(dev)
这段代码跑起来后,既不创建设备,也没有任何错误提示。后来我修改了create的部分,加上了打印结果的逻辑:
result = nb.dcim.devices.create( name=dev, device_type=85, role=35, site=36, ) print(result)
结果运行后print(result)根本没有输出,设备还是没创建出来。
我又尝试了加异常捕获的版本,想着至少能看到错误信息:
os.chdir('<Directory>') with open('<File>.csv', 'r') as file: reader = csv.DictReader(file) for row in reader: try: nb.dcim.devices.create( name=row["name"], device_type=89, role=40, site=9, ) except pynetbox.RequestError as e: print(e.error)
结果还是一样,没有设备被创建,也没有任何异常信息打印出来。
但奇怪的是,如果我单独运行下面这段代码,设备是能正常在NetBox里创建出来的:
nb.dcim.devices.create( name="TEST", device_type=89, role=40, site=9, )
这说明我的NetBox连接是通的,账号也有创建设备的权限。我猜可能是变量映射或者数据类型的问题,但我刚接触pynetbox和Python,实在找不到这个“低级错误”在哪,麻烦各位大佬帮忙指点一下!
备注:内容来源于stack exchange,提问作者user3366942




