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

discord.py中给Discord自定义Emoji赋值变量时出现语法错误求助

报错原因

你当前直接书写的<:stone:900586388708290610>格式不是Python合法的字面量类型,解析器无法识别该语法,因此抛出SyntaxError。

解决方法

根据使用场景可选择两种方案:

方法1:直接存储为字符串(适合仅发送展示的场景)

将整个自定义表情标识用英文双引号/单引号包裹即可,discord在发送消息时会自动将该格式的字符串解析为对应的自定义表情。
修改后的示例代码:

# 声明Emoji变量
sEmoji = "<:stone:900586388708290610>"
cEmoji = "<:coal:替换为煤炭表情的实际ID>"
iEmoji = "<:iron:替换为铁表情的实际ID>"
gEmoji = "<:gold:替换为金表情的实际ID>"
dEmoji = "<:diamond:替换为钻石表情的实际ID>"
eEmoji = "<:emerald:替换为绿宝石表情的实际ID>"

注意:你当前代码中所有表情的ID完全相同,最终会全部显示为同一个表情,需要替换为各个表情对应的实际ID。

方法2:获取Emoji对象(适合需要添加反应、判断表情等操作的场景)

可以通过discord.py内置的get_emoji方法获取表情对象,需要在Bot实例初始化完成、并成功登录后调用:

# 需保证Bot已加入表情所在的服务器
sEmoji = bot.get_emoji(900586388708290610)
# 其余表情同理替换对应ID即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 04:45:03