Это пример моей проблемы:
@bot.command()
async def example(ctx, *, arg, arg2):
await ctx.message.delete()
r = requests.get(f"https://example.api/image?first_text = {arg}sec_text = {arg2}")
await ctx.send(r)
Если я выполню команду следующим образом: {prefix}example argument one text, argument two text
Он должен вернуться example.api/image?first_text=argument one text&sec_text= argument two text
При синтаксическом анализе ключевых слов у вас может быть только одна переменная ключевого слова, которая принимает весь предоставленный текст, как задокументировано здесь.
Вам нужно разделить его содержимое самостоятельно:
@bot.command()
async def example(ctx, *, arg):
await ctx.message.delete()
# split the ONE argument into two
arg, arg2 = arg.split(",", 1)
r = requests.get(f"https://example.api/image?first_text = {arg}sec_text = {arg2}")
await ctx.send(r)
См.: str.split(sep=None, maxsplit=-1)
Боковое примечание: вы можете исправить свой URI - он пропускает &
перед вторым аргументом:
r = requests.get(f"https://example.api/image?first_text = {arg}&sec_text = {arg2}")