我必须从下面的 JSON 响应中单独解析并获取'id'
字段值(即在这种情况下13
)。我的 JSON 响应将采用以下格式。这是获取策略 nessus 调用
{'policies': [{'creation_date': 1546583582,
'description': 'New Scan',
'has_credentials': 0,
'id': 13}]}
我的代码:
import requests
from first import *
url = 'https://localhost:8834/policies'
headers = {'X-Cookie':mys()}
response = requests.get(url, headers=headers, verify=False)
resp = response.json()
for k,v in resp.items():
print (v)
代码响应:
[{'creation_date': 1546583582,'description': 'New Scan','has_credentials': 0,'id': 13}]
我不确定如何编写代码以获得预期响应的结果 - 'id' : 13
或只是13
.
您可以通过以下任一方式执行此操作:
resp = {'policies': [{'creation_date': 1546583582,
'description': 'New Scan',
'has_credentials': 0,
'id': 13}]}
for k,v in resp.items():
print(v[0]['id']) # -> 13
# or
print(resp.popitem()[1][0]['id']) # -> 13
如果您有多个策略并希望提取 id 以列出,您可以使用列表推导式,例如 [policy.get('id') for policies in resp.values() for policy in policies]
,您将获得一个ID列表
另一种方法是循环:
for policies in resp.values():
for policy in policies:
print(policy.get('id'))