使用Python3.4解析Twitter时间线的推文:requests、Json和字典
这是我第一个问题 :)
我正在学习如何用Python使用API,所以我从Twitter上获取我的时间线推文。
我已经成功地把数据拉取到一个字典里,但结果的格式和我第一个项目(不同的API)不一样,所以我不知道该用哪个元素来遍历推文。
import requests
import json
from requests_oauthlib import OAuth1
url = 'https://api.twitter.com/1.1/statuses/user_timeline.json?_count=3&screen_name=dimbodoyle&count=2'
auth = OAuth1('auth supplied'))
requests.get(url, auth=auth, verify=False)
response = requests.get(url, auth=auth, verify=False)
data = response.json()
# This is where the problems start
output = ''
for n in data:
print(n)
output += ['data'][n]['text'] + '\n'
with open('testTwitter.txt', mode='w', encoding='utf-8') as f:
f.write(output)
print('Done')
当我在Python中运行时,出现了以下错误:
追踪(最近的调用最后):
文件 "C:\Python34\twitter\Connecting to twitter with request and json.py",第17行,
output += ['data'][n]['text'] + '\n'
类型错误:列表索引必须是整数,而不是字典。
有没有人有什么想法?我明白它想要一个整数来进行循环,而且我知道在这个上下文中n似乎是整个字典,但我不知道为什么,也不知道该怎么修正。
非常感谢任何帮助
1 个回答
1
n
是一个字典,它存储的是状态而不是索引,所以你应该用 n["text"]
来获取相应的值。
statuses = response.json()
print "\n".join([status["text"] for status in statuses])