我不确定为什么会出现此错误。我正在尝试输入一个时间,告诉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)
答案 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。