繁体   English   中英

Python 从 tweepy 返回流数据

[英]Python returning streaming data from tweepy

我正在构建一个模块 source_collect.py,其中应包含我将用来从各种来源收集数据并返回原始数据的模块,我可以使用第二个模块进行解析。

我能够将流数据打印或写入 json 文件,但我无法通过返回函数返回数据。 有没有人对我错过的东西有一些指示?

import tweepy

import twitter_credentials as cred

class my_streaming_object(tweepy.streaming.StreamListener):

    def on_data(self,raw_data):
        try:
            print('......streaming...')
            self.raw_data = raw_data
            return self.raw_data

        except BaseException as e:
            print(f'Code broke :{str(k)}')
            return False

    def on_error(self,status_code):
        if status_code ==420:
            print(f'Twitter limit stop{self.status.code}')
            return False


class twitter_data:

    def stream_tweets_keywords(self, keywords):
        # get twitter access
        authen = tweepy.auth.OAuthHandler(cred.CONSUMER_KEY,cred.CONSUMER_SECRET)
        authen.set_access_token(cred.ACCESS_TOKEN,cred.ACCESS_TOKEN_SECRET)
        test = authen.get_username()
        print(f'You are Authenticated as Twitter user {test}')
        print('....Initialising twitter stream......')
        # stream tweets
        try:
            streamer = my_streaming_object()
            my_stream = tweepy.streaming.Stream(authen, listener=streamer)
            my_stream.filter(track=keywords, is_async=True)
            return
        except BaseException as b:
            print(b)
            return False




if __name__=='__main__':

    run = twitter_data()
    run.stream_tweets_keywords(['Hydrogen','Nikola'])

通过改变我的逻辑解决了它。 在 DB_store 模块中创建了一个函数,我在这个模块中使用了它来处理对 db 的流响应。

逻辑上的变化不是让这个模块返回然后在下一个函数输入中拾取它。 我在这个函数中嵌套了下一个函数。

我现在不知道这是一个很好的做法,所以如果任何机构对整体逻辑有一个很好的 OOP 指导方针,那将不胜感激。

暂无
暂无

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

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