我正在使用以下代码从RESTCONF HTTPS请求中获取JSON数据。
https_request = 'https://' + host + '/restconf/data/' + operation
headers = {'Content-type': 'application/yang-data+json', 'Accept': 'application/yang-data+json'}
r = requests.get(https_request, auth=(user, password), headers=headers, verify=False)
print r.json()
我得到的数据是:
{
"Cisco-IOS-XE-native:Tunnel": {
"name": 0,
"bandwidth": {
"kilobits": 256
},
"ip": {
"address": {
"primary": {
"address": "10.10.1.1",
"mask": "255.255.255.252"
}
}
},
"load-interval": 30,
"Cisco-IOS-XE-tunnel:tunnel": {
"source": "GigabitEthernet1",
"destination": {
"ipaddress-or-host": "10.2.1.3"
}
}
}
}
基本上,我希望我的函数返回该字段的"bandwidth"
值256
。我尝试了以下方法,但没有用。
capacity = r.json()['Cisco-IOS-XE-native:Tunnel']['bandwidth']
答案 0 :(得分:1)
尝试一下:
j={
"Cisco-IOS-XE-native:Tunnel": {
"name": 0,
"bandwidth": {
"kilobits": 256
},
"ip": {
"address": {
"primary": {
"address": "10.10.1.1",
"mask": "255.255.255.252"
}
}
},
"load-interval": 30,
"Cisco-IOS-XE-tunnel:tunnel": {
"source": "GigabitEthernet1",
"destination": {
"ipaddress-or-host": "10.2.1.3"
}
}
}
}
print(j['Cisco-IOS-XE-native:Tunnel']['bandwidth'])
这将返回:
{'kilobits': 256}
对于256:
print(j['Cisco-IOS-XE-native:Tunnel']['bandwidth']['kilobits'])