У меня есть код, который использует рекурсию для переноса данных из одной записанной в Интернет таблицы в базу данных SQlite.Когда я запускаю код, он показывает, как он выполняет итерацию данных правильно, но в середине итераций он неожиданно прерывается, говоря:
Файл "C: \ Users \ rub \ Desktop \ Phyton \ mtgdb_v2.py ", строка 173, в insert_tcg cursor.execute (sql, values) sqlite3.OperationalError: попытка записи базы данных только для чтения.
Модуль, который вводит данные для добавления строки в базу данных,исходя из рекурсивного "def":
def insert_tcg(cardcode,nameEN,rarity,cardno,trendTCG,midTCG,lowTCG):
values=(cardcode,nameEN,rarity,cardno,trendTCG,midTCG,lowTCG)
print(values) #this one is for visually check the data that manages
with sqlite3.connect("MTGdb.db") as db:
cursor=db.cursor()
sql="insert into TCGdb (cardcode, nameEN, rarity, cardno, trendTCG,
midTCG, lowTCG) values (?,?,?,?,?,?,?)"
cursor.execute(sql,values)
db.commit()
Я запускал его много раз и затем просматривал базу данных, я увидел, что она правильно вводит случайное количество строк (например, иногда 26, иногда 128,другие 210) из общего числа ожидаемых 224 строк, когда я ожидал, что все строки будут введены в базу данных.База данных находится в папке на рабочем столе (жесткий диск).Странно видеть, как БД превращается в чтение базы данных.