2015-08-25 58 views
0

我試圖讓被轉推原始推文的ID(見文檔:http://dev.datasift.com/docs/sources/public-sources/twitter)使用收效甚微的twittersearch API。我想使用Twitter搜索來具體得到:twitter.retweeted.id的Python:使用twittersearch API來獲取twitter.retweeted.id

這是我的代碼:

import datetime 
import csv 
import itertools as it 

import codecs 
tweet_text_id = [] 
from TwitterSearch import TwitterSearchOrder, TwitterUserOrder, TwitterSearchException, TwitterSearch 
try: 
    tso = TwitterSearchOrder() 
    tso.set_keywords([""]) 
    tso.set_language('') 
    tso.set_include_entities(True) 



    ts = TwitterSearch(
     consumer_key = "aaa", 
     consumer_secret = "bbb", 
     access_token = "ccc", 
     access_token_secret = "dddd" 
    ) 

    for tweet in ts.search_tweets_iterable(tso): 
      tweet_text_id.append({'id':tweet['id'], 'text': tweet['text'].encode('utf8'), 'retweeted' : tweet ['retweeted']['id']}) 

    for i in tweet_text_id: 
     print(i) 


except TwitterSearchException as e: 
    print(e) 

我得到以下錯誤:

TypeError: 'bool' object has no attribute '__getitem__' 

我也試過:

tweet_text_id.append({'id':tweet['id'], 'text': tweet['text'].encode('utf8'), 'retweeted' : tweet['retweeted'_'id']}) 

和:

tweet_text_id.append({'id':tweet['id'], 'text': tweet['text'].encode('utf8'), 'retweeted' : retweeted['id']}) 

無論如何通過twittersearch得到這個?如果沒有:有經驗的人如何通過twython檢索它?

謝謝!

回答

0

發現:

它應該是:

for retweeted in ts.search_tweets_iterable(tso): 
     tweet_text_id.append({'retweeted' : retweeted['id']}) 

這樣做:

for retweeted, tweet in ts.search_tweets_iterable(tso): 
tweet_text_id.append({'id':tweet['id'], 'text': tweet['text'].encode('utf8'), 'retweeted' : tweet ['retweeted']['id']}) 

導致此錯誤:

ValueError: too many values to unpack 

所以,你只需要編寫t的單獨循環weet