Ошибка при покупке в дискорд боте discord.py

Я написал код для экономики на discord.py когда пробувал купить вылазит такая ошибка: File "E:\discordbotik\main.py", line 137, in __buy cursor.execute("UPDATE users SET cash = cash - {0} WHERE id = {1}".format(role.id)).fetchone()[0, ctx.author.id] IndexError: Replacement index 1 out of range for positional args tuple

Код комманды:

@client.command(aliases = ['buy'])
async def __buy(ctx, role: discord.Role = None):
    if role is None:
        await ctx.send(f"**{ctx.author}**, укажи роль которую хочешь купить")
    else:
        if role in ctx.author.roles:
            await ctx.send(f"**{ctx.author}** Глаза раззуй, у тебя уже есть эта роль!")
        elif cursor.execute("SELECT cost FROM shop WHERE role_id = {}".format(role.id)).fetchone()[0] > cursor.execute("SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]:
            await ctx.send(f"**{ctx.author}**, Пошел нафиг с магазина, бомжара!")
        else:
            await ctx.author.add_roles(role)
            cursor.execute("UPDATE users SET cash = cash - {0} WHERE id = {1}".format(role.id)).fetchone()[ctx.author.id]
            await ctx.message.add_reaction( '✔' )

Вот скриншот: введите сюда описание изображения


Ответы (1 шт):

Автор решения: Corrygan

При форматировании строки вы указываете только 1 аргумент role.id для {1}, а для {0} аргумент не указан.

cursor.execute("UPDATE users SET cash = cash - {0} WHERE id = {1}".format(role.id)).fetchone()[ctx.author.id]
→ Ссылка