Python将JSON响应作为单值字典获取

时间:2016-03-14 12:24:43

标签: python json python-requests

使用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或错误等。

2 个答案:

答案 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']
相关问题