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
相关产品推荐
相关产品推荐

