Tweepy on_data 收到 None
Tweepy on_data receiving None
我正在遵循有关如何使用 Python
将数据流式传输到 Kafka 的指南
按照@MarkTolonen 的建议进行修改后,我现在收到以下错误:
AttributeError: 'NoneType' 对象没有属性 'encode'
完整代码如下:
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
from kafka import KafkaClient
#from kafka import SimpleProducer
access_token = ""
access_token_secret = ""
consumer_key = ""
consumer_secret = ""
#Configure Kafka
kafkaBrokers = '127.0.1.1:9092'
#producer = KafkaProducer(bootstrap_servers=kafkaBrokers,key_serializer=lambda k: k.encode('ascii','ignore'),value_serializer=lambda x: dumps(x).encode('utf-8'))
class StdOutListener(StreamListener):
def on_data(self, data):
producer.send("trump", data.encode('utf-8'))
print (data)
return True
def on_error(self, status):
print (status)
kafka = 'localhost:9092'
#kafka = KafkaClient("localhost:9092")
#producer = SimpleProducer(kafka)
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
stream.filter(track="trump")
您需要参考文档为什么数据可能是 None,但您可以像这样解决这个问题
def on_data(self, data):
if data:
producer.send("trump", data.encode('utf-8'))
print (data)
return True
return False
我正在遵循有关如何使用 Python
将数据流式传输到 Kafka 的指南按照@MarkTolonen 的建议进行修改后,我现在收到以下错误:
AttributeError: 'NoneType' 对象没有属性 'encode'
完整代码如下:
from tweepy.streaming import StreamListener
from tweepy import OAuthHandler
from tweepy import Stream
from kafka import KafkaClient
#from kafka import SimpleProducer
access_token = ""
access_token_secret = ""
consumer_key = ""
consumer_secret = ""
#Configure Kafka
kafkaBrokers = '127.0.1.1:9092'
#producer = KafkaProducer(bootstrap_servers=kafkaBrokers,key_serializer=lambda k: k.encode('ascii','ignore'),value_serializer=lambda x: dumps(x).encode('utf-8'))
class StdOutListener(StreamListener):
def on_data(self, data):
producer.send("trump", data.encode('utf-8'))
print (data)
return True
def on_error(self, status):
print (status)
kafka = 'localhost:9092'
#kafka = KafkaClient("localhost:9092")
#producer = SimpleProducer(kafka)
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, l)
stream.filter(track="trump")
您需要参考文档为什么数据可能是 None,但您可以像这样解决这个问题
def on_data(self, data):
if data:
producer.send("trump", data.encode('utf-8'))
print (data)
return True
return False