python - 除了 BaseException as e: 不断抛出错误
问题描述
我正在关注有关分析 Twitter 数据的教程。我想知道为什么我在第 44 行不断收到语法错误:除了 BaseException as e:
from tweepy import API
from tweepy import Cursor
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
import twitter_credentials
#TWITTER AUTHENTICATOR
class TwitterAuthenticator():
def authenticate_twitter_app(self):
auth = OAuthHandler(twitter_credentials.CONSUMER_KEY, twitter_credentials.CONSUMER_SECRET)
auth.set_access_token(twitter_credentials.ACCESS_TOKEN, twitter_credentials.ACCESS_TOKEN_SECRET)
return auth
#TWITTER STREAMER
class TwitterStreamer():
#Class for streaming and processing live tweets
def __init__(self):
self.twitter_authenticator = TwitterAuthenticator()
def stream_tweets(self, fetched_tweets_filename, hash_tag_list):
#This handles Twitter authentication and connection to the Twitter streaming API
listener = TwitterListener()
auth = self.twitter_authenticator.authenticate_twitter_app()
stream = Stream(auth, listener)
stream.filter(track=hash_tag_list)
class TwitterListener(StreamListener):
#Basic listener class that just prints received tweets to stdout
def __init__(self, fetched_tweets_filename):
self.fetched_tweets_filename = fetched_tweets_filename
def on_data(self, data):
try:
print(data)
with open(self.fetched_tweets_filename, 'a') as tf:
tf.write(data)
return True
except BaseException as e:
print('Error on_data %s' % str(e))
return True
def on_error(self, status):
print(status)
if __name__ == '__main__':
hash_tag_list['kevin durant', 'steph curry', 'clippers']
fetched_tweets_filename = 'tweets.json'
twitter_streamer = TwitterStreamer()
twitter_streamer.stream_tweets(fetched_tweets_filename, hash_tag_list)
解决方案
你except
的缩进太多了。应与try
(in on_data()
) 处于同一级别,并且 in 中的代码except
应缩进相同。
顺便说一句,函数写错了。在某些情况下,它什么也不返回。您至少应该在return False
函数体的末尾添加。
推荐阅读
- javascript - 使用 DevTools 进行高级跟踪和调试 JavaScript
- python - 为什么它说名称'area_of_Triangle'未定义?
- angular - 如何在 Angular 项目中使用 Bootswatch?
- maven - 如何配置 pom.xml 以将 jooq 类生成到两个不同的包中?
- javascript - 从嵌套的对象数组中获取值
- c++ - 将项目设置为32位后找不到cout uint_32等
- python - 从别名导入时出现 ModuleNotFoundError
- javascript - 点击isso评论系统头像附近的“^”图标无法投票评论
- python - 无法导入 mysql.connector - ModuleNotFoundError:没有名为“mysql”的模块
- python - 数据帧中的多点(df['geometry'])键错误,但键存在。KeyError:13个geopandas