响应返回字符串而不是dictionairy - TypeError

时间:2015-01-22 18:38:15

标签: python python-requests

我使用Requests使用Auth键获得一个简单的API响应,但是当我尝试使用常见的dict表示法获取它时,我被告知它是一个字符串,我必须使用INT指示。我觉得我错过了一些明显但却无法理解的东西。

>>>import requests

>>>r = requests.get(api_url).text

>>>print r

{"PID":"foo","LoginToken":"barbarbarfoofoo","Status":"OK"}

>>>print r['LoginToken']

TypeError:字符串索引必须是整数

我使用get.content

获得相同的结果

3 个答案:

答案 0 :(得分:3)

requests.get(api_url).json

requests.get(api_url).json()

取决于您拥有的请求版本

答案 1 :(得分:0)

.text响应对象的requests属性是文本,如名称所示。如果您的网站返回JSON响应,则您需要使用类似

的内容
response = json.loads(r)

这将使response成为一个词典。

可替换地,

r = requests.get(api_url).json()

会使r成为一个词典。

答案 2 :(得分:0)

很可能是JSON,它与典型的Python数据结构有很多共同之处。如果你解码它,你会得到一本字典:

import json
json.loads(r)