2014-05-14 36 views
2

#我也一样,你在Python Shell中提出的输出是错误抛出一个错误-STRING指数必须是整数

从rauth进口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

在for循环中打印'tweet'。它看起来如何? –

+0

萨尔曼它不与for循环跟踪再次相同的错误。你能编辑你正在谈论的确切的循环代码吗?感谢您的回复 –

+0

这样做, '为我,在枚举鸣叫(r.json(),1):' ' print(tweet)' 然后你可以看到'tweet'和你为什么是得到这个错误。并粘贴在这里。 –

回答

0

无论您tweetstr或您的tweetdict和您的tweet['user']str。你似乎预计tweet['user']是一个字典,并尝试与tweet['user']['screen_name']索引。这意味着你正试图将str与另一str索引,这是不可能的(因为它是没有意义的)。由此产生的错误信息明确指出:TypeError: string indices must be integers

我想你给你的tweet和你tweet['user'](使用print tweetprint tweet['user'],但两者在同一个print语句不给出去,否则第二个表达式将防止输出的所有错误),以弄清楚什么数据结构在这里。那么你可能知道如何自己去做,或者你在这里再次发布你发现的东西,这样我们就可以继续帮忙。

+0

嗨阿尔夫感谢您的回复。你能在这里为我输入代码的编辑部分吗? –

+0

只需在'handle = ...'之前的两行分开插入'print tweet'和'print tweet ['user']''。 – Alfe

+0

我做了同样的Alfe,但我得到了同样的错误Print tweet ['user'] TypeError:字符串索引必须是整数 –

相关问题