首先,我搜索了我的类似问题,但没有人能够回答我上面的问题。希望大家多多指教。
我正在运行一个脚本以从网络设备列表中提取数据并将值保存到 json 文件中,例如下面
json-1 = {
"channel": "scanner",
"action": "create_device",
"table": "U2",
"device":[]
}
data = "device_name","ip_address","lldp_neighbors"
然后用一行代码获取devicename、ipaddress和lldp的数据,返回值,提取出来保存到上面的数据列表中。例如
my[data[0]] = connection.find_prompt().rstrip('>') #to get hostname
my[data[1]] = device['ip'] #to get ip address
my[data[2]] = connection.send_command('show lldp neighbors | display xml')
#to get lldp data in xml format
json1["device"].append(my) #append my data to device
对于 my[data[2]],lldp 邻居将返回 xml 格式的数据并将该 xml 数据转换为 json 格式文件,如下所示
LLDP 邻居详情:-
"lldp_neighbors": [
{
"local-port": "xe-3/0/4.0",
"parent-interface": "ae31.0",
"chassis-id": "b0:c6:9a:63:80:40",
"port-info": "xe-0/0/0/0.0",
"system-name": "host.jnpr.net"
}
我的问题是如何将上面的 lldp 邻居详细信息(json 数据)添加到 json-1 的 temp[data[2]] 上,以便生成的最终 json 文件 json.dump(json-1, fp) 如下所示,嵌套的 json 文件
{
"channel": "scanner",
"action": "create_device",
"table": "U2",
"device": [
{
"device_name": "rtr1.wer",
"ip_address": "1.1.1.1",
"lldp_neighbors": [
{
"local-port": "xe-3/0/4.0",
"parent-interface": "ae31.0",
"chassis-id": "b0:c6:9a:63:80:40",
"port-info": "xe-0/0/0/0.0",
"system-name": "host.jnpr.net"
}
]
]
}
我真的希望有人能指出我正确的道路......我被卡住了......请帮助我。谢谢你。