get请求的输出保存在变量中。 如何过滤变量中的数据以仅显示我需要的信息?
这是我检索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)
答案 0 :(得分:1)
要获取 "apiList":[
{
"apiName": "campaign",
"clientObject": "campaigns"
},
{
"apiName": "customField",
"clientObject": "customfields"
},
{
"apiName": "customRedirect",
"clientObject": "customredirects"
},
{
"apiName": "emailClick",
"clientObject": "emailclicks",
"noSortBy": true
},
...
的列表作为结果:
dict
或者获取>>> [{'name': srv['name']} for srv in jsdata['server']]
[{'name': 'server1'}, {'name': 'server2'}, {'name': 'server3'}]
的列表作为结果:
str