我正在使用代码:
getSource = requests.get("https://api.twitch.tv/kraken/streams")
text = json.loads(getSource.text)
print text["streams"]["_links"]["_self"]
text是我通过调用json.loads获得的字典。然后我尝试获取嵌套值,最终尝试获取url但是此错误显示出来:
Traceback (most recent call last):
File "Twitch Strim.py", line 11, in <module>
print text["streams"]["_links"]["_self"]
TypeError: list indices must be integers, not str
我该如何纠正?
答案 0 :(得分:0)
错误是说您在“text”对象上有一个列表。我认为您应该打印变量测试以查看其内容。
答案 1 :(得分:0)
您正在访问错误的json数据,访问它的正确方法是:
print text["streams"][0]["_links"]["self"]
完整代码:
>>> import requests
>>> import json
>>> getSource = requests.get("https://api.twitch.tv/kraken/streams")
>>> text = json.loads(getSource.text)
>>> print text["streams"][0]["_links"]["self"]
https://api.twitch.tv/kraken/streams/summit1g
>>> print text["streams"][1]["_links"]["self"]
https://api.twitch.tv/kraken/streams/tsm_theoddone
>>> print text["streams"][2]["_links"]["self"]
https://api.twitch.tv/kraken/streams/reynad27
请注意text["streams"]
为您提供了一个项目列表(而不是dict),因此您必须通过其索引值进行访问。
您可以使用
检查相同内容>>> type(text["streams"])
<type 'list'>