@fokioff

Как решить проблему с типом данных?

Доброго времени суток. Появилась проблема с экспортом данных из таблицы sqlite3... Мне нужно достать два айдишника в формате'12345678', '87654321'. Потом с помощью len сосчитать сколько их и если больше или равно двум то прогнать через цикл for...

Если брать и записать в переменную эти два id
whl = '12345678', '87654321'
То всё прекрасно заработает: len сосчитает их получится 2 , но когда я экспортирую из базы данных эти два id whl = cur.fetchone()[0]
То происходит беда, а именно len считает 22, а цикл for видит не '12345678', а только ' .
Я правильно понимаю, что ошибка в типе данных? Помогите пожалуйста, это меня поставило в тупик.

Кусок кода:
@dp.callback_query_handler(text="gol")
async def gol(call: types.CallbackQuery):
    conn = sqlite3.connect('db.db')
    cur = conn.cursor()
    cur.execute(
        f'''SELECT wholikes FROM users WHERE user_id = "{call.from_user.id}"''')
    whl = cur.fetchone()[0]
    print(whl)
    # '829706162', '-1001537714001'

    how = len(whl)
    print(how)
    # 29

    if how > 1:
        for i in whl:
             print(i)
             # '
             .....
  • Вопрос задан
  • 147 просмотров
Решения вопроса 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
Описанная вами конструкция
whl = '12345678', '87654321'
в python вернет кортеж строк.
Если запрос к базе данных возвращает кортеж, а вы его затем преобразовываете в строку, то цикл может перебирать строку посимвольно и возвращать в т.ч. символ кавычки.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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