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

Python编写Discord命令时参数含空格、网页请求传参问题修复

问题根因

你碰到的两个问题都是Discord机器人开发里的常见坑:

  • discord.py 默认的命令解析逻辑按空格切割命令后的输入,你代码里只定义了普通位置参数msg,框架只会把第一个空格前的片段传入该参数,后续所有带空格、换行的内容都会被直接忽略。
  • 直接把用户输入裸拼到URL里没有做转义编码,空格、特殊符号会破坏URL的参数结构,直接导致接口请求异常。
修复步骤
  • 给msg参数前加*标记,告诉解析器这个参数要捕获命令后所有剩余内容,不管中间有多少空格、换行,全部完整传入。
  • 用Python标准库的URL编码方法处理用户输入,自动把空格、特殊字符转成URL合法的格式,再拼接请求地址,避免传参异常。
修复后可直接运行的代码
import discord
from urllib.parse import urlencode

@client.command()
async def cautionsign(ctx, *, msg):
    # 自动编码参数,处理空格、特殊字符转义
    img_url = "https://api.popcat.xyz/caution?" + urlencode({"text": msg})
    embed = discord.Embed(title="Here's your caution sign!")
    embed.set_image(url=img_url)
    await ctx.send(embed=embed)

修复后不管是!cautionsign test 测试文本 带空格,还是命令后换行输入多段内容,都能完整识别,不会出现内容截断,特殊字符也不会导致接口请求失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:33:22