@mistersosiska

Почему в Python sqlite3 выводится из таблицы переменная вот так вот(3,)?

при отправки переменной der_str, взята из таблицы sqlite3, отправляется как-то так:
Баланс: (53,)
мне надо чтобы без скобок и запятой

cursor.execute("SELECT dollars FROM users WHERE id=?", (message.from_user.id,))
    der = cursor.fetchall()
    der_str = "\n".join([str(dollars) for dollars in der])
    conn.commit()
    await message.answer(f"Ваш айди: {message.chat.id}\nБаланс:{der_str})


вот так вот выглядит создание таблица

cursor.execute('''CREATE TABLE IF NOT EXISTS users(
    id INTEGER PRIMARY KEY,
    dollars INTEGER,
    energy INTEGER
);''')
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 2
Mike_Ro
@Mike_Ro Куратор тега Python
Python, JS, WordPress, SEO, Bots, Adversting
fetchall() что возвращает? Вам же нужно вернуть данные по одному пользователю? Тогда используйте метод fetchone(), вместо fetchall():
cursor.execute("SELECT dollars FROM users WHERE id=?", (message.from_user.id,))
res = cursor.fetchone()
if res:
    debet = res[0]
    await message.answer(f"Ваш айди: {message.chat.id}\nБаланс: {debet}")
else:
    await message.answer("Не знаем таких.")
Ответ написан
Комментировать
@dim5x
ЗИ, ИБ. Помогли? Поблагодарите. Отметьте ответом.
cursor.fetchall() возвращает все строки в виде списка кортежей, отсюда и такая запись у вас. Вытаскивайте нужное из кортежа:
der = [(57,)]
der_str = "\n".join([str(dollars[0]) for dollars in der])
print(der_str)

>>> 57
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы