2016-09-17 77 views
1
from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 

ckey = 'hidden due to question' 
csecret = 'hidden due to question' 
atoken = 'hidden due to question' 
asecret = 'hidden due to question' 

class listener(StreamListener): 

    def on_data(self, data): 
     try: 
      print (data) 
      saveFile = open('TwitterAPI.csv','a') 
      saveFile.write(data) 
      saveFile.Write('\n') 
      saveFIle.close() 
      return (True) 
    def on_error(self, status): 
     print (status) 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 
twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=["car"]) 

上面的代碼的問題是,它一直在提出一個錯誤消息,指出有一個意外的unindent在//def on_error // rowPython Twitter API流tweepy試圖將數據保存到CSV文件

回答

0

您打開一個try塊,但沒有捕捉到異常。

https://docs.python.org/3/tutorial/errors.html

另外要小心,蟒蛇是大小寫敏感的,所以saveFilesaveFIle,也不saveFile.write()saveFile.Write() ...

編輯您的on_data()處理程序如下應該使其工作:

def on_data(self, data): 
    try: 
     print(data) 
     with open('TwitterAPI.csv','a') as f: 
      f.write(data) 
    except Exception as e: # here catch whatever exception you may have. 
     print('[!] Error : %s' % e) 

編輯:以下是您完整的代碼修改:

from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 

ckey = 'hidden due to question' 
csecret = 'hidden due to question' 
atoken = 'hidden due to question' 
asecret = 'hidden due to question' 


class listener(StreamListener): 

    def on_data(self, data): 
     try: 
      print(data) 
      with open('TwitterAPI.csv','a') as f: 
       f.write(data) 
     except: 
      pass 

    def on_error(self, status): 
     print (status) 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 
twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=["car"]) 
+0

一條錯誤消息,指出意外縮進仍然存在 '級監聽器(StreamListener): 高清on_data(個體經營,數據): 嘗試: 打印(數據) 開放(' TwitterAPI .csv','a')作爲f: f.write(data) 除了Exception作爲e:#這裏可以捕獲你可能有的任何異常。 打印( '錯誤[!]:%s' 的%E) DEF ON_ERROR(個體,狀態): 打印(狀態) AUTH = OAuthHandler(CKEY,csecret) auth.set_access_token(atoken,asecret) twitterStream =流(auth,listener()) twitterStream.filter(track = [「car」])' – harreskhan

+0

您能告訴我錯誤信息嗎? –

+1

對不起,我是python的新手,從來沒有在 – harreskhan