繁体   English   中英

Python Twitter API Stream试图将数据保存到CSV文件

[英]Python Twitter API Stream tweepy trying to save data to a CSV file

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"])

上面代码的问题在于它不断出现一条错误消息,指出// def on_error //行中出现意外的unindent

您打开一个try块而不捕获异常。

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

另外要小心,python是区分大小写的,所以saveFile不是saveFIlesaveFile.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"])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM