使用Python3.4解析Twitter时间线的推文:requests、Json和字典

0 投票
1 回答
938 浏览
提问于 2025-04-18 06:28

这是我第一个问题 :)
我正在学习如何用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])

撰写回答