Вам не нужно вызывать ненужный list
метод для каждого элемента в следующей строке:
rows = [list(row) for row in rows]
Замените вышеприведенное на:
rows = [row for row in rows]
Это преобразует кортежи в список.
Также убедитесь, что ваша функция возвращает rows
для доступа к нему.
def select_all_tasks(self):
.....
.....
rows = self.c.fetchall()
return rows
Ниже приведен пример доступа к нему:
In [514]: tuple_of_tuples = ((1, 2), (2, 3))
In [515]: tuple_of_tuples
Out[515]: ((1, 2), (2, 3))
In [516]: list_of_tuples = [row for row in tuple_of_tuples]
In [517]: list_of_tuples
Out[517]: [(1, 2), (2, 3)]
In [518]: list_of_tuples[0]
Out[518]: (1, 2)
In [519]: list_of_tuples[0][0]
Out[519]: 1
In [520]: list_of_tuples[0][1]
Out[520]: 2