抛出错误-String索引必须是整数

时间:2014-05-14 06:35:54

标签: python twitter

#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))

1 个答案:

答案 0 :(得分:0)

您的tweetstrtweetdicttweet['user']str。您似乎期望tweet['user']是一个词典,并尝试使用tweet['user']['screen_name']进行索引。这意味着您尝试将str与另一个str索引,这是不可能的(因为它没有意义)。生成的错误消息完全表明:TypeError: string indices must be integers

我认为您提供了tweettweet['user'](使用print tweetprint tweet['user'],但不要在同一个打印声明中给出,否则会出错在第二个表达式中将完全阻止输出)来确定这里的数据结构。然后你可能知道如何继续自己,或者你再次在这里发布你发现的东西,这样我们就可以继续帮助了。