Запись результата выполнения sql запроса в переменную

Учусь в python работать с sqlite.

Столкнулся с тем, что при выполнении запроса в БД не могу записать данные в переменную :

rows = c.execute("SELECT message_id From Messages where DATE is NOT Null")
for row in rows.fetchall():
        print(row[0])

Т.к. кортеж, который возвращается я обрабатываю в цикле, чтобы убрать лишнее - '[', то сообщения выводятся списком по 1, что не совсем то что нужно. Необходимо полный результат запроса записать в переменную и вывести ее.

Подскажите, пожалуйста, как можно это сделать?


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

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

fetchall нам возвращает фактически массив [ ['aaa'], ['bbb'], ['ccc'] ]. Значит нам его сначала надо привести к массиву вида ['aaa', 'bbb', 'ccc'], а потом уже собрать в строку так, как нужно. Сборка массива в строку происходит с помощью join. Итого:

string = ', '.join( [ row[0] for row in rows.fetchall() ] )
→ Ссылка