#python #sql #sqlite #discord #discord.py
#python #sql #sqlite #Discord #discord.py
Вопрос:
У меня есть это Discord.py экономический проект, как я могу выбрать exp внутри этой таблицы SQL и вернуть его пользователю внутри вставки?
Код:
@commands.command()
async def balance(self, ctx):
db = sqlite3.connect('banco.sqlite')
cursor = db.cursor()
cursor.execute(f'SELECT user_id, exp, lvl FROM levels WHERE guild_id = {ctx.author.guild.id} AND user_id = {ctx.author.id}')
result1 = cursor.fetchone()
exp = int(result1[1])
for i in range(1,99):
if exp == i :
em = discord.Embed(title = f'{ctx.author.name}', color = (0xbbbbbb))
em.add_field(name = 'LOJINHA 2.0 ',value = int(result1[3]) )
em.add_field(name = 'LOJINHA 2.0',value = 'C')
em.set_author(name='LOJINHA 2.0', icon_url='https://i.imgur.com/X4u3yOW.png')
em.set_thumbnail(url='https://i.imgur.com/f05uKPn.png')
await ctx.send(embed = em)
Возможно, мне понадобится некоторая помощь с этой строкой кода:
em.add_field(name = 'LOJINHA 2.0 ',value = int(result1[3])
Я получаю эту ошибку:
Обратная трассировка (последний последний вызов):
Файл «/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/ext/commands/bot.py» , строка 903, в invoke
ожидает ctx.command.invoke(ctx)Файл «/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/ext/commands/core.py» , строка 855, в invoke
вводится ожидание (* ctx.args, **ctx.kwargs)Файл «/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/discord/ext/commands/core.py» , строка 94, в завернутом виде
вызывает CommandInvokeError(exc) из excdiscord.ext.команды.ошибки.CommandInvokeError: Команда вызвала исключение: IndexError: индекс кортежа вне диапазона
^CMarcoss-Воздух: экономия CIP$
Marcoss-Воздух:экономия CIP$
Комментарии:
1. Можете ли вы распечатать
result1
и сказать, что это возвращает? Поскольку вы получаете ошибку IndexError, она не содержит того, что вы ожидаете от нее2. результат1 = (‘129329540429381632′, ’53’, ‘0’)
3. Ухххх, я получил это сейчас result1[2]