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

discord.py开发Discord机器人提及角色触发TypeError: unhashable type: 'set'报错如何解决

错误原因

你触发的TypeError: unhashable type: 'set'报错是因为参数类型写错:

channel = client.get_channel({849549009038344262})

你用大括号{}把频道ID包了起来,Python里单独用大括号包裹的非键值对元素会被识别为**集合(set)**类型,而client.get_channel()方法要求传入整数类型的频道ID,集合属于不可哈希类型,不符合方法参数要求,因此触发报错。

修复方案

把包裹频道ID的大括号删除,直接传入整数ID即可:

# 修复后的代码
channel = client.get_channel(849549009038344262)

额外检查项

  • 确保你的机器人有权限访问ID为849549009038344262的频道,且持有发送消息的权限
  • 如果你使用discord.py v2.0及以上版本,需要提前在Discord开发者后台开启对应机器人的消息内容特权网关意图(Message Content Intent),否则msg.role_mentions无法正常识别@的角色

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 02:15:08