Как получить значения из столбца в БД?

Есть бот, хочу сделать рассылку всем пользователям, нужны их id, они хранятся в столбце БД.

структура БД

Что смог уже сделать:

import sqlite3
from sqlite3 import Error
from time import sleep, ctime

con = sqlite3.connect('bot_users.db')
with con:
    cur = con.cursor()    
    cur.execute("SELECT user_id FROM users")
 
    while True:
        us_id = cur.fetchone()
        
        if us_id == None:
            break

        users_id = list(us_id)
        print(users_id)

Вывод перевел в список, но переводятся все id в первый элемент списка.

Так выглядит:

Вывод в консоль результата

Если поставить 1, то уже выхожу за границы списка. Цель, получить каждое id по отдельности, так как отправка сообщения будет каждому по отдельности.


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

Автор решения: S. Nick

Попробуйте так:

import sqlite3
from sqlite3 import Error
from time import sleep, ctime

con = sqlite3.connect('bot_users.db')
with con:
    cur = con.cursor()    
    cur.execute("SELECT user_id FROM users")
 
    while True:
        us_id = cur.fetchone()
        
        if us_id == None:
            break

#        users_id = list(us_id)
#        print(users_id)

        print(f'{us_id[0]}')
→ Ссылка
Автор решения: St0rm1k

я сам нашел выход

users_id = []

for id in us_id:
    users_id.append(int(id[0]))

print(users_id)
→ Ссылка
Автор решения: MaxU

В данном случае гораздо эффективнее использовать метод cur.fetchall():

with con:
    cur = con.cursor()    
    cur.execute("SELECT cast(user_id as INTEGER) as user_id FROM users")
 
users_id = [row[0] for row in cur.fetchall()]
→ Ссылка