提问者:小点点

出现此错误的原因是什么?如何修复此错误?


我不知道为什么会出现这个错误。 我正在尝试输入一个时间,其中告诉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个答案

匿名用户

试试看

class StatusStream(StreamListener):


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

这将在Python3中起作用。 您的语法适用于Python2。 另外,如果StreamListener初始化timeLimit,则IDK将初始化timeLimit,因此您可能需要也可能不需要在init中传递timeLimit。