Как получить конкретное значение из бд sql в python?

Рейтинг: 1Ответов: 1Опубликовано: 01.02.2023

У меня есть код написанный на discord.py и sqlite3:

for players in cursor.execute("""SELECT player1 FROM lobby WHERE id = ?""", [0]):
    if players[0] == None:
        cursor.execute("""UPDATE lobby SET player1 = ? WHERE id = ?""", (ctx.author.id, 0))
        sqlite_connection.commit()
        embed = discord.Embed(
            description=f"[1/10] {ctx.author.mention} присоединился к очереди"
        )
        await ctx.send(embed=embed)
    print(players[0])

переменная p1 выдает: ('None',), а мне надо получить просто None без лишних символов как я могу это сделать?

Ответы

▲ 1Принят

Вытаскивать значения из базы данных можно с помощью for, in:

for test in cursor.execute("""SELECT player1 FROM lobby WHERE id = ?""", [0]):

Мы назвали переменную test. Теперь player1 можно использовать как test[0]. Например:

if test[0] == None: #Вместо None лучше использовать значение по умолчанию в Вашей таблице..

Последующие значения, например SELECT player1, player2, player3 FROM мы получаем как test[0], test[1], test[2] и т.д.

Полный код:

for test in cursor.execute("""SELECT player1 FROM lobby WHERE id = ?""", [0]):
    if test[0] == None:
        ....