此错误的原因是什么,如何解决?

时间:2020-06-12 14:39:08

标签: python object twitter tweepy

我不确定为什么会出现此错误。我正在尝试输入一个时间,告诉Twitter API流式传输的时间。我收到错误消息,不确定如何解决。

Traceback (most recent call last):
  File "streamobjecttest.py", line 1, in <module>
    import StatusStream
  File "/Users/yaminhimani/Desktop/tweetybird/StatusStream.py", line 68, in <module>
    twitterStream = Stream(auth=auth, listener=StatusStream(),tweet_mode='extended')
TypeError: __init__() takes exactly 2 arguments (1 given)

流.py文件

from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import time
import Tweet
import DatabaseInteractor 
import twitter_credentials




class StatusStream(StreamListener):


    def __init__(self, timeLimit):
      self.start_time = time.time()
      self.timeLimit = timeLimit
      super(StatusStream, self).__init__(timeLimit)


    def on_status(self, status):


   if (time.time()- self.start_time < self.timeLimit):
       print(status.text)



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



auth = OAuthHandler(twitter_credentials.API_KEY,twitter_credentials.API_SECRET_KEY)
auth.set_access_token(twitter_credentials.ACCESS_TOKEN,twitter_credentials.ACCESS_TOKEN_SECRET)

twitterStream = Stream(auth=auth, listener=StatusStream(),tweet_mode='extended')
twitterStream.filter(track=["plumber","visa","bathtub"])

不同的.py文件

import StatusStream
import Tweet




stream= StatusStream.StatusStream(20)

1 个答案:

答案 0 :(得分:0)

尝试

class StatusStream(StreamListener):


     def __init__(self, timeLimit):
          self.start_time = time.time()
          self.timeLimit = timeLimit
          super().__init__(timeLimit)

这将在Python 3中工作。您的语法也将在Python 2中工作。此外,如果StreamListener初始化timeLimit,则为IDK,因此您可能需要也可能不需要在init中传递timeLimit。