Добавление элемента в список, записанный в БД Sqlite3
У меня имеется БД c таблицей movies, в которой два поля user_id и films. В первом соответственно хранится айди, а во втором список из фильмов, который в Sqlite3 может существовать только в виде списка из кортежей, как я понял.
Сначала я добавляю значения "вручную", но мне хотелось бы разработать алгоритм добавления туда новых фильмов. Однако все мои попытки достать из базы все фильмы юзера, чтобы добавить к ним еще один неизменно заканчиваются пустым списком.
conn = sqlite3.connect("movies_db.db")
cursor = conn.cursor()
#добавляю фильмы для 1 юзера
new_movies = [('фильм1',), ('фильм2',), ('фильм3',),]
cursor.executemany("insert into movies values (1, ?);", new_movies)
conn.commit()
>>>[(1, 'фильм1'), (1, 'фильм2'), (1, 'фильм3')]
#Далее пытаюсь автоматизировать (чтобы затем полученное значение перезаписать в БД)
sql = "SELECT * FROM movies WHERE user_id = 1"
cursor.execute(sql)
dbresult = cursor.fetchall()
film4 = ('фильм4',)
result = dbresult.append(film4)
print(result)
>>>None
Ответы (1 шт):
Автор решения: Даниил Чижевский
→ Ссылка
Ваша ошибка в том, что метод append не имеет возвращаемого значения. Смените строку:
result = dbresult.append(film4)
На:
dbresult.append(film4)
Результат работы останется в переменной dbresult.