获取请求的输出保存在一个变量中。如何过滤变量中的数据以仅显示我需要的信息?
这就是我检索 json 的方式:
import requests
url = "https://"+nsip+"/nitro/v1/config/server/"
headers = {
'Cache-Control': "no-cache"
}
response = requests.get(url=url, headers=headers, auth=(usr,pwd), verify=False)
jsdata = response.json()
print(json.dumps(jsdata, indent=3))
输出:
{
"errorcode": 0,
"message": "Done",
"severity": "NONE",
"server": [
{
"name": "server1",
"ipaddress": "192.168.134.28",
"boundtd": "0"
},
{
"name": "server2",
"ipaddress": "192.168.134.18",
"boundtd": "0"
},
{
"name": "server3",
"ipaddress": "192.168.134.9",
"boundtd": "0"
}
]
}
我只想过滤和打印“名称”而忽略其余部分:
"name": "server1"
"name": "server2"
如果我做:
servers = jsdata['server'][1]['name']
print(servers)
它只打印第一个服务器名称。
还试过:
for i in jsdata:
query = ({'i["name"]'})
print(query)
要获取dict
结果列表:
>>> [{'name': srv['name']} for srv in jsdata['server']]
[{'name': 'server1'}, {'name': 'server2'}, {'name': 'server3'}]
或获取str
结果列表:
>>> [srv['name'] for srv in jsdata['server']]
['server1', 'server2', 'server3']
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句