我正在使用TwitchAPI,我有一个大型嵌套字典。我如何筛选?在
>>> r = requests.get('https://api.twitch.tv/kraken/streams/sibstlp', headers={'Accept': 'application/vnd.twitchtv.v2+json'})
然后:
^{pr2}$有趣的是:
>>> r.text
# large nested dictionary starting with
#u'{"stream":{"_links":{"self":"https://api.twitch.tv/kraken/streams/sibstlp"},
有人知道为什么r.text和print r.text不同吗?在
我怎样通过词典把我要找的信息找出来? 我正在尝试:
>>> r.text[stream]
NameError: name 'stream' is not defined
谢谢
首先,您尝试访问字符串中的元素,而不是字典。
r.text
只返回请求的纯文本。要从requests
对象获取正确的字典,请使用r.json()
。在当您尝试}中的键对应的值。你没有这样的变数。您需要的是与文本字符串“stream”的键对应的值。因此,
r.json()[stream]
时,Python认为您正在字典中查找与变量{r.json()['stream']
应该为您提供下一个嵌套字典。如果需要该url,则r.json()['stream']['_links']['self']
应该返回它。在关于}不同的原因,请参阅Ashwini的答案。在
print r.text
和{print r.text
返回对象的str
版本,而r.text
返回对象的repr
版本。在字典的键是字符串,如果使用
r.text[stream]
,那么python将查找名为stream
的变量,如果找不到它,它将引发NameError
。在只需使用:
r.text['stream']
演示:
^{pr2}$相关问题 更多 >
编程相关推荐