python读取json,python解析json文件
有问题:1
感谢能给我进一步建议的人。我想使用python脚本和netmiko模块通过ssh连接到我的设备。我通过api请求ssh细节(json文件),并使用这些数据运行脚本。但是我得到了下面的错误。希望有人能给我指路。在
我漏掉了一些东西,但是不知道怎么解决。请指正指导。谢谢你。在
json文件创建为以下片段response=requests.post (URL,data=data,headers=headers,verify=false)
dictionary_info=response.json()
用open(devices.json , w )作为fp:
json.dump(dictionary_info,fp,indent=4,sort_keys=True)
文件,如下所示:
^{pr2}$
当我运行下面的脚本(片段)时,它将返回下面的错误文件“devices.py ”,第18行,在
打印(连接到设备:,设备[ip])
TypeError:字符串索引必须是整数
对于设备中的设备:
尝试:
打印( ~ * 79)
打印(连接到设备:,设备[ip])
连接=netmiko。connect handler(* *设备)
print(connection.send_command(显示界面))
connection.disconnect()
除了netmiko_exceptions作为e:
打印(失败,设备[ip],e)
我应该能够根据json文件提供的ssh细节在每台设备上运行脚本和ssh。不知何故,代码需要进一步修改,但我不知道如何修改。请帮助我。谢谢你
我编辑的内容device.json …我删除了大括号{},对象名 device 和 status ,只保留了list [],如下图[
{
用户名: scnpa ,
ip: 10.10.10.1 ,
密码: 123 ,
设备类型:思科ios
},
{
用户名: scnpa ,
ip: 10.10.10.2 ,
密码: 123 ,
设备类型:思科ios
},
{
用户名: scnpa ,
ip: 10.10.10.3 ,
密码: 123 ,
设备类型:思科ios
},
{
用户名: scnpa ,
ip: 10.10.10.4 ,
密码: 123 ,
设备类型:思科ios
}
]
今天,我只需尝试nerror…然后运行脚本,它就会工作.使用上面可编辑的json文件。我知道这不是最终的解决方案,我会得到我之前分享的json文件(带花括号{},等等)。),或者有什么办法可以让我得到上面的格式[{},{},{}]?从JSONAPI响应创建一个文件,只得到{{},{}。{},{}]内容。在
或者让它保持原样。在
您可能需要在for循环部分修改python脚本。我尝试删除该设备,但我得到一个不同的错误。将“device”更改为另一个名称,但仍然显示错误“typeerror: string index必须是整数”。
我不知道。对于设备中的设备:
尝试:
打印( ~ * 79)
打印(连接到设备:,设备[ip])
连接=netmiko。connect handler(* *设备)
print(connection.send_command(显示界面))
connection.disconnect()
问题2:我创建了一个单独的帖子
我还有一个关于从API读取响应json文件(字符串)查询的问题。例如,json响应如下{
状态:成功,
设备:[
{
型号: XXXX-A ,
用户名: scnpa1 ,
ip: 10.10.10.1 ,
密码: 123 ,
设备类型:思科ios
},
{
型号: XXXX-A ,
用户名: scnpa2 ,
ip: 10.10.10.2 ,
密码: 456 ,
设备类型:思科ios
}
]
}
如何确保只有特定的键/值,比如名称和密码,并且文件可以打印和创建为json文件(列表),可以作为python脚本的输入读取。我希望它看起来像下面这样{
状态:成功,
设备:[
{
用户名: scnpa1 ,
ip: 10.10.10.1 ,
密码: 123
},
{
用户名: scnpa2 ,
ip: 10.10.10.2 ,
密码: 456
}
]
}
但是我将使用下面的json参数来创建它response=requests.post (URL,data=data,headers=headers,verify=false)
dictionary_info=response.json()
用open(devices.json , w )作为fp:
json.dump(dictionary_info,fp,indent=4,sort_keys=True)
请告诉我。谢谢你
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。