使用python将json请求发送到rest api。最初的请求是登录!登录成功后,将返回要与每个后续请求一起使用的密钥。此时登录服务器已关闭,所以我修改了我的代码只是为了说明我面临的问题。
#!/usr/bin/env python
import requests
from requests.auth import HTTPDigestAuth
import json
r = requests.get('myApi')
data = json.loads(r.content)
print(r.status_code)
for key, value in data.items():
print key
print value
apikey = data['startRow']
输出是;
401
response
{u'status': 401, u'startRow': 0, u'totalRows': 1, u'data': {u'errors': [u'Credentials are not valid']}, u'endRow': 1}
Traceback (most recent call last):
File "zzzz\test.py", line 24, in <module>
apikey = data['startRow']
KeyError: 'startRow'
如何引用dict中的特定参数?它出现好像值实际上是整个响应本身就是值,而不是startRow或错误等。
答案 0 :(得分:2)
更改行;
apikey = data['response']['startRow']
答案 1 :(得分:0)
使用方便的requests.Response.json()
让requests
负责解析JSON响应:
import requests
r = requests.get('myApi')
data = r.json()
apikey = data['startRow']