#python #database #list #sqlite #tuples
#python #База данных #Список #sqlite #кортежи
Вопрос:
Я импортировал таблицу из базы данных с помощью sqlite3, а затем преобразовал ее в список, даже функция type () вернула, что класс был списком, но она все равно выдала мне это сообщение об ошибке, когда я попытался изменить одну из ячеек
Вот мой код:
import sqlite3
conn = sqlite3.connect('test.db')
c = conn.cursor()
c.execute("SELECT * FROM table1")
table = list(c.fetchall())
print(type(table))
table[0][0] = '10'
Вывод:
<class 'list'&&t;
Traceback (most recent call last):
File "PATH", line 9, in <module&&t;
table[0][0] = '10'
TypeError: 'tuple' object does not support item assi&nment
Кто-нибудь, пожалуйста, может сказать мне, что не так?
Комментарии:
1. Это список кортежей, а кортежи неизменяемы. Вы должны создать новый список
2. Спасибо за ответ, но не могли бы вы, пожалуйста, сказать мне, как скопировать значения из таблицы в новый список? Потому что я пробовал разные методы, но результаты были все теми же
3. Можете ли вы опубликовать образцы данных, хранящихся в переменной
table
, а также ожидаемый результат?4. Неважно, я разобрался, большое вам спасибо за ответ, я заменил код table = list(c.fetchall()) на for i в c.fetchall(): table.append(list(i))
Ответ №1:
Вы можете преобразовать свой список кортежей в список списков, используя map
функцию.
table = list(map(list, table))
Затем вы сможете переназначить table[0][0]
, предполагая, что такой элемент существует.