我能够得到api请求的响应,并让它给出所有细节。我解码json response.json()并使用open()和json.dump创建文件。我可以看到列表中对象的所有键和值。接下来,我想获取一个特定的键/值,以便可以将其用作我的另一个python脚本的输入。
我能够从api请求并解码json,并通过json.dump创建json文件,并列出所有对象。
我的python代码来查询和创建json文件。
import requests
import json
#API request details
url = 'api url'
data = '{"service":"ssh", "user_id":"0", "action":"read_by_user",
"user":"D2", "keyword":"NULL"}'
headers = {"Content-Type": "application/json"}
#Making http request
response = requests.post(url,data=data,headers=headers,verify=False)
print(response)
#Json string
json_disco = response.text
print(type(json_disco))
print(json_disco)
#Decode response.json() method to a python dictionary and use the data
device_disco = response.json()
print(type(device_disco))
print(device_disco)
with open('devices.json', 'w') as fp:
json.dump(device_disco, fp, indent=4, sort_keys=True)
这是我使用netmiko模块访问设备的代码
with open('devices.json') as dev_file:
devices = json.load(dev_file)
print(devices)
netmiko_exceptions = (netmiko.ssh_exception.NetMikoTimeoutException,
netmiko.ssh_exception.NetMikoAuthenticationException)
for device in devices['device']:
try:
print('~' * 79)
print('Connecting to device:',device['ip'])
connection = netmiko.ConnectHandler(**device)
print(connection.send_command('show interfaces'))
connection.disconnect()
except netmiko_exceptions as e:
print('Failed to ', device['ip'], e)
访问数组“device['ip']中的设备的ssh,该数组返回包含所有详细信息(如登录名/ip/password)的json文件。
来自api查询的JSON响应,该响应的所有细节如下; 从这。。。。
{
"status": "SUCCESS",
"device": [
{
"model":"XXXX-A",
"username": "login1",
"ip": "10.10.10.1",
"password": "123",
"device_type": "cisco_ios"
},
{
"model":"XXXX-A",
"username": "login2",
"ip": "10.10.10.2",
"password": "456",
"device_type": "cisco_ios"
},
{
"model":"XXXX-A",
"username": "login3",
"ip": "10.10.10.3",
"password": "test",
"device_type": "cisco_ios"
}
]
}
我只想提取用户名、ip和密码的密钥和值,仍然是下面的json格式。 为了这个。。。。
{
"status": "SUCCESS",
"device": [
{
"username": "login1",
"ip": "10.10.10.1",
"password": "123"
},
{
"username": "login2",
"ip": "10.10.10.2",
"password": "456"
},
{
"username": "login3",
"ip": "10.10.10.3",
"password": "test"
}
]
}
我无法从每个对象中提取特定的键和值并按上面的json列表格式打印。
这个问题是其中一个,如果我的其他职位,但我把它作为一个单独的问题,因为该职位已经回答,以避免任何混乱。我真的需要专家的帮助,支持和指导将非常感谢。谢谢
请尝试此工作代码:
你可以这样使用列表理解和听写:
在你的代码中:
相关问题 更多 >
编程相关推荐