2014-05-14 32 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:字符串索引必須是整數 –

相關問題