我正在使用Twitter API编写一个微博机器人,特别是Twitter API v2。该脚本应该使用码字流式传输一些tweet,并将它们写入文件。我正试图将filename
参数添加到StdOutListener
类的构造函数中。
import tweepy
import credentials
class StdOutListener(tweepy.StreamingClient):
def __init__(self, bearer_token, filename):
self.bearer_token = bearer_token
self.filename = filename
def on_data(self, data):
with open(self.filename) as file:
file.write(data)
print("[+] File written!")
return True
def on_error(self, status):
print(status)
if __name__ == "__main__":
filename = "tweets.json"
listener = StdOutListener(credentials.BEARER_TOKEN, filename)
listener.add_rules(tweepy.StreamRule("Boston Celtics"))
listener.filter()
然而,每当我运行这个,我得到错误:AttributeError: 'StdOutListener' object has no attribute 'user_agent'
。我觉得这和继承有关。所以我试着用super
,但无济于事。我在StackOverflow上搜索了这个问题的答案,但没有找到一个。是什么导致了AttributeError?
刚刚遇到了这个问题,试图将参数传递给该类。你需要super().init(bearer_token)
class StdOutListener(tweepy.StreamingClient):
def __init__(self, bearer_token, filename):
super().__init__(bearer_token)
self.filename = filename