You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何出现AttributeError: 'NoneType'对象无'send'属性?如何解决?

问题解决:AttributeError: 'NoneType' object has no attribute 'send'

问题根源

你的ProducerConsumer类构造函数存在逻辑错误:没有将传入的isProducer、isConsumer参数赋值给类的私有属性self.__isProducer和self.__isConsumer,导致后续判断是否创建生产者/消费者的条件永远不成立,__producer始终为None,调用send_topic时自然会触发NoneType没有send方法的错误。

修复方案

修改customKafka.py中的__init__方法,先将传入的参数赋值给私有属性,再执行生产者/消费者的初始化逻辑:

from kafka import KafkaConsumer
from kafka import KafkaProducer
import json

class ProducerConsumer:
    __isProducer=None
    __isConsumer=None
    __producer=None
    __consumer=None

    def __init__(self,isProducer,isConsumer,topic,bootstrap_servers):
        # 先将传入的参数赋值给私有属性
        self.__isProducer = isProducer
        self.__isConsumer = isConsumer
        
        if self.__isProducer:
            self.__producer=KafkaProducer(bootstrap_servers=bootstrap_servers)
        if self.__isConsumer:
            self.__consumer= KafkaConsumer(
                topic,
                bootstrap_servers=bootstrap_servers,
                auto_offset_reset='earliest',
                enable_auto_commit=True,
                consumer_timeout_ms = 10000)

    def get_producer(self):
        return self.__producer

    def get_consumer(self):
        return self.__consumer

    def send_topic(self,topic,data):
        self.get_producer().send(topic, json.dumps(data).encode("utf-8"))

验证

修改后重新运行scrapeBackend.py,生产者实例会被正确初始化,send_topic方法可以正常向Kafka发送消息。

内容的提问来源于stack exchange,提问作者scanpower

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 01:57:18