我的第一个问题:) 我正在学习使用api的python,所以我从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中运行时,我收到以下错误 Traceback(最近一次调用最后一次): 文件" C:\ Python34 \ twitter \连接到twitter请求和json.py",第17行,in 输出+ = ['数据'] [n] ['文字'] +' \ n' TypeError:list indices必须是整数,而不是dict。
任何想法?我得到它想要一个整数用于循环,我得到n在这个上下文似乎是整个字典但我不知道为什么,我不知道如何纠正它。
任何帮助非常感谢
答案 0 :(得分:1)
n
是包含状态而非索引的字典,因此您可以改为n["text"]
。
statuses = response.json()
print "\n".join([status["text"] for status in statuses])