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

discord.py开发Discord机器人报SyntaxError无效语法错误如何修复

discord.py Embed颜色参数触发无效语法报错修复

问题场景

使用discord.py框架开发Discord机器人时,运行代码触发invalid syntax无效语法报错,涉及功能为发送嵌入消息(Embed)。

原问题代码

embedVar = discord.Embed(title="Hello, and welcome to Alex's Bobux", description="Desc", color=#00ff00)
      embedVar.add_field(name="Field1", value="hi", inline=False)
      embedVar.add_field(name="Field2", value="hi2", inline=False)
      await message.channel.send(embed=embedVar)

运行报错信息

File "main.py", line 21
    embedVar.add_field(name="Field2", value="hi2", inline=False)
    ^
SyntaxError: invalid syntax

错误原因

排查方向正确,报错标记位置和实际错误点存在偏移:Python原生语法不识别#开头的网页格式十六进制颜色值,discord.Embed的color参数要求传入整数类型色值,直接写#00ff00属于非法语法,解释器无法正确解析该行代码结构,最终会把报错标记到后续第一行合法代码的开头。

修复方案

选择任意一种方式修改color参数即可解决问题:

  • 将#开头的十六进制色值改为Python支持的0x前缀十六进制整数格式,即把color=#00ff00修改为color=0x00ff00,这是discord.py开发中最常用的色值传参方式
  • 调用discord.py内置的颜色类生成色值,比如color=discord.Colour.green()直接使用预设绿色,或者color=discord.Colour.from_rgb(0, 255, 0)通过RGB值自定义颜色

修复后可正常运行的代码

embedVar = discord.Embed(title="Hello, and welcome to Alex's Bobux", description="Desc", color=0x00ff00)
embedVar.add_field(name="Field1", value="hi", inline=False)
embedVar.add_field(name="Field2", value="hi2", inline=False)
await message.channel.send(embed=embedVar)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 12:45:31