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

Discord工单机器人出现async_generator无flatten属性的AttributeError求助

解决Discord工单机器人的flatten()属性错误

错误原因

你遇到的AttributeError: 'async_generator' object has no attribute 'flatten'是discord.py版本升级引发的API变更导致的:在discord.py v2.0及以上版本中,TextChannel.history()方法返回的是异步生成器(async_generator),不再提供flatten()方法;而旧版本(v1.x)中该方法返回MessageHistory对象,自带flatten()用于将历史消息转为列表。

修复方案

直接替换第26行的代码,用异步列表推导式替代flatten(),实现相同的消息列表收集功能:

修改前代码

msgs = await support_request_channel.history(limit=200, oldest_first=True).flatten()

修改后代码

msgs = [msg async for msg in support_request_channel.history(limit=200, oldest_first=True)]

验证修复

修改后,msgs仍然是频道历史消息的列表,后续筛选机器人消息、删除旧消息的逻辑无需改动。机器人即可正常完成初始化流程,恢复发送消息、删除旧消息的功能。

版本确认(可选)

若不确定当前discord.py版本,可执行以下命令查看:

pip show discord.py

如果版本号为2.x.x及以上,上述修改完全适用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 12:40:27