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