Проблемы с выводом из бд

Делаю бота для дискорда и столкнулся с проблемой вывода из бд значений с таблицы в эмбет дискорда, то есть выводит у меня [(1,)], а нужно просто цифру

async def boss(ctx):
    await ctx.channel.purge(limit=1)
    author = ctx.message.author
    emb = discord.Embed(title ='**КЛАНОВАЯ ИГРА**', description = '**КРАТОСС**', colour = discord.Color.purple())

    emb.add_field(name = 'Уровень:', value = cur.execute(f'SELECT lvl FROM DiscordBossData WHERE userid = {ctx.author.id}').fetchmany(), inline= False)

Выводит: КЛАНОВАЯ ИГРА КРАТОСС Уровень: [(1,)] А нужно: КЛАНОВАЯ ИГРА КРАТОСС Уровень: 1


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

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

Вы используете .fetchmany(), этот метод нужен для возврата списка записей, а записями будут кортежи (в вашем случае на 1 элемент lvl):

emb.add_field(name = 'Уровень:', value = cur.execute(f'SELECT lvl FROM DiscordBossData WHERE userid = {ctx.author.id}').fetchmany(), inline= False)

Вам нужно использовать метод fetchone:

result = cur.execute(f'SELECT lvl FROM DiscordBossData WHERE userid = {ctx.author.id}').fetchone()
emb.add_field(name='Уровень:', value=result[0], inline=False)

PS.

Не рекомендую передавать параметры явно в строку запроса, а использовать биндинги (bindings), это упрощает запрос при куче параметров и избавляет от возможных sql-инъекций:

result = cur.execute('SELECT lvl FROM DiscordBossData WHERE userid=?', [ctx.author.id]).fetchone()
→ Ссылка