在discord.py 中将引号作为参数传递时出现错误

2023-12-21

目前,当有人在命令中使用引号时,我的 Discord 机器人出现错误,我收到以下错误:discord.ext.commands.errors.ExpectedClosingQuoteError: Expected closing ".这似乎是一个开放的错误discord.py根据这个错误报告 https://github.com/Cog-Creators/Red-DiscordBot/issues/3055这段代码 https://github.com/Rapptz/discord.py/blob/874c2cd3c9ed47fa42eea184b167b8c0c64ea18e/discord/ext/commands/view.py#L30-L48 in discord.py。这是一个有点烦人的问题,我想知道目前是否有任何解决方案。到目前为止,这是我的代码:

@bot.command()
async def f(ctx, *args):
hearts = (':heart:', ':orange_heart:', ':yellow_heart:', ':green_heart:', ':blue_heart:', ':purple_heart:')

if not args:
    response = '**{0}** has paid their respects {1}'.format(ctx.author.name,
                                                            hearts[random.randint(0, len(hearts) - 1)])
else:
    response = '**{0}** has paid their respects {1} {2}'.format(ctx.author.name, ' '.join(args),
                                                                hearts[random.randint(0, len(hearts) - 1)])

当用户通过键入调用此函数时!f "The thing在 Discord 中,我得到了上面提到的命令。无论如何我可以解决这个问题吗?我认为这是不可能的,因为参数传递到函数的那一刻,错误就被抛出了。我想我可以编辑discord.py解决这个问题,但它可能会破坏我的机器人的其他区域。当 iOS 用户在键盘上使用引号并输入类似内容时,我通常会收到此错误!f Josh's face。有什么办法可以让所有引号都通过这个函数成功传递吗?

谢谢你!


它将命令之后的所有内容视为args并将默认值设置为 None,这样如果没有 args,您就不会收到错误discord.ext.commands.errors.MissingRequiredArgument: args is a required argument that is missing.

我还更改了要使用的格式f string https://www.geeksforgeeks.org/formatted-string-literals-f-strings-python/我相信这更容易。并使用随机选择() https://docs.python.org/3/library/random.html#random.choice对你来说更好

文档中的示例 https://discordpy.readthedocs.io/en/latest/ext/commands/commands.html#keyword-only-arguments

@bot.command()
async def f(ctx, *, args=None):
    hearts = (':heart:', ':orange_heart:', ':yellow_heart:',
              ':green_heart:', ':blue_heart:', ':purple_heart:')

    if not args:
        response = f'**{ctx.author.name}** has paid their respects {random.choice(hearts)}'
    else:
        response = f'**{ctx.author.name}** has paid their respects {args} {random.choice(hearts)}'

    await ctx.send(response)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在discord.py 中将引号作为参数传递时出现错误 的相关文章

随机推荐

  • 如何使用正则表达式匹配重音字符?

    我正在运行 Ruby on Rails 3 0 10 和 Ruby 1 9 2 我使用以下正则表达式来匹配名称 NAME REGEX w s u validates name presence gt true format gt with
  • C++11 的编译器标志

    我正在尝试编写 CMakeFiles txt 以前从未这样做过 但我不确定 C 11 使用什么编译器标志 我使用 GCC 4 8 2 标志是 std c 0x 但我不知道如何处理其他编译器 我不认为他们都使用该标志 我相信 MinGW TD
  • ActiveRecord Association 选择包含记录的计数

    Example class User has many tickets end 我想创建包含用户计数票证逻辑的关联 并在包含中使用它 用户 has one Ticket count Users includes tickets count
  • 选择 UITableViewCell AccessoryView,与选择行分开

    我有一个UITableview我正在显示一些任务 并且每一行都有一个复选框来标记任务是否完成 我希望在用户点击复选框时切换复选标记 并在用户点击该行时切换到详细视图 后者很简单 只需使用 void tableView UITableView
  • 如何让 Javascript 等待所有图像加载后再继续?

    我对 Javascript 相当陌生 目前正在尝试以各种尺寸和位置显示图像 这意味着我必须先加载图像 然后才能访问宽度和高度等值 现在 这就是我面临问题的地方 我尝试依次加载图像 确保只有在完成一张图像后才会加载另一张图像 const a
  • 使用 QObject 代替容器

    读完有趣的亲子系统后QObject我想知道 Qt 开发人员使用它来代替更传统的容器有多常见 假设内存连续性不是必需的 这似乎提供了一些有趣的功能 例如 您可以有一个QObject并为其提供不同类型的子级 然后根据其类型轻松找到所有子级 从而
  • 如何构建boost静态库?

    这可行 但不会构建 boost 库的静态版本 也许我错了 bjam toolset gcc prefix C boost 1 49 0 mingw install 尝试发出以下命令 bjam toolset gcc prefix C boo
  • 在 post 请求中发送文件

    在 python 中 我发送这样的文件 with open D someimage jpg rb as image imager image read files image imager r requests post url files
  • AWS SAM - 模板没有任何连接到 Lambda 函数的 API

    因此 我尝试将现有的 Spring Boot 应用程序转换为 AWS lambda 并使用 SAM 我正在尝试使用 aws sam cli 在本地尝试我的 lambda 但是通过我的 SAM 设置 我得到 Template does not
  • 使用 printf 打印浮点数时额外的前导零?

    我希望能够编写一个如下所示的时间字符串 1 04 02 1 hours使用 printf 当我尝试写这样的东西时 printf d 02d 02 1f hours n 1 4 2 123456 I get 1 04 2 1 hours 是否
  • 在相同的 Javascript 上下文中创建带有附加 svelte 组件的窗口

    我使用 Sapper 框架 我想打开我自己的开发工具窗口 该窗口应该能够完全访问主窗口的 Javascript 对象 我正在尝试创建一个带有 svelte 组件和相同 Javascript 上下文的新窗口 var win window op
  • Django,UserChangeForm 错误

    我正在制作一个自定义用户表单 用户可以在其中更改一些详细信息 它有两个错误 但我无法理解问题所在 第一个问题是表单没有填写用户详细信息 这似乎是因为selfform初始化时为空 为什么 第二个问题是 当我提交此表单时 它会抱怨一些 KeyE
  • 在Eclipse中,如何运行修改上下文路径的Tomcat Maven插件

    在安装了 m2 Maven 插件的 Eclipse 中 我可以使用 Run on Server 命令通过 Eclipse WTP 在 Tomcat 中运行我的 web 应用程序 现在我想通过 Maven 修改上下文路径 所以我使用以下插件
  • params=True 的 Altair 回归变换:当有多个组时如何访问 r² 和 coeffs

    我在用transform regression在图表中创建回归线和相应的方程文本 对于单个回归 这工作得很好 但是对于 setgroupby something 选项 文本将绘制在彼此之上 我尝试使用构建字符串lineBreak n 但这没
  • Tomcat 7.0.73 不适用于 java 9

    由于 catalina sh 中的默认 java endorsed dirs 选项 无法使用 java 9 启动基于 tomcat 的应用程序 Djava endorsed dirs usr local share tomcat endor
  • MVC4 - 如何从剃刀视图调用控制器方法

    我是 MVC 新手 有人可以帮助我并解释如何从视图调用控制器方法吗 我有 HomeController 里面有 ShowFileContent 方法 HttpPost public ActionResult ShowFileContent
  • python:打开并读取包含德语变音符号的文件作为unicode

    我已经编写了程序来从文本文件中读取单词并将它们输入到 sqlite 数据库中并将它们视为字符串 但我需要输入一些包含德语变音符号的单词 这是一段准备好的代码 我都用 尝试过 编码 iso 8859 15 和 编码 utf 8 没有不同 co
  • PayPal 重定向到相同的弹出窗口

    我在我的网页中集成了 PayPal 的 Identity API 像往常一样 当用户点击时login with paypal JavaScript 按钮 https developer paypal com webapps develope
  • 替换 ASP.NET Core 中的 @helper

    到目前为止 我不认为ViewComponent解决了也没有解决的问题TagHelper 有什么替代品吗 接受参数并返回一个的东西HtmlString 我没有看到任何有害的东西 helper foo string something div
  • 在discord.py 中将引号作为参数传递时出现错误

    目前 当有人在命令中使用引号时 我的 Discord 机器人出现错误 我收到以下错误 discord ext commands errors ExpectedClosingQuoteError Expected closing 这似乎是一个