#I做的和你提出的一样,python shell的输出是错误
来自rauth import OAuth1Service
twitter = OAuth1Service(
name='twitter',
consumer_key='2Xs6nzIL8r5yx4DQCxgg',
consumer_secret='XXXXXXXX',
request_token_url='https://api.twitter.com/oauth/request_token',
access_token_url='https://api.twitter.com/oauth/access_token',
authorize_url='https://api.twitter.com/oauth/authorize',
base_url='https://api.twitter.com/1/')
request_token, request_token_secret = twitter.get_request_token()
authorize_url = twitter.get_authorize_url(request_token)
print 'Visit this URL in your browser: ' + authorize_url
pin = raw_input('Enter PIN from browser: ')
session = twitter.get_auth_session(request_token,
request_token_secret,
method='POST',
data={'oauth_verifier': pin})
params = {'screen_name': '@nytimes', # User to pull Tweets from
'include_rts': 1, # Include retweets
'count': 10} # 10 tweets
r = session.get('statuses/user_timeline.json', params=params)
for i, tweet in enumerate(r.json(), 1):
print tweet
#handle = tweet['user']['screen_name']
#text = tweet['text']
#print('{0}. @{1} - {2}'.format(i, handle, text))
答案 0 :(得分:0)
您的tweet
是str
或tweet
是dict
而tweet['user']
是str
。您似乎期望tweet['user']
是一个词典,并尝试使用tweet['user']['screen_name']
进行索引。这意味着您尝试将str
与另一个str
索引,这是不可能的(因为它没有意义)。生成的错误消息完全表明:TypeError: string indices must be integers
。
我认为您提供了tweet
和tweet['user']
(使用print tweet
和print tweet['user']
,但不要在同一个打印声明中给出,否则会出错在第二个表达式中将完全阻止输出)来确定这里的数据结构。然后你可能知道如何继续自己,或者你再次在这里发布你发现的东西,这样我们就可以继续帮助了。