У меня есть скрипт на python, который считывает необработанные текстовые файлы фильмов в базу данных sqlite.
Я использую re.escape (title) для добавления escape-символов в строки, чтобы сделать их безопасными в БД перед выполнением вставок.
Почему это не работает:
In [16]: c.execute("UPDATE movies SET rating = '8.7' WHERE name='\'Allo\ \'Allo\!\"\ \(1982\)'")
--------------------------------------------------------------------------- OperationalError Traceback (most recent call last)
/home/rajat/Dropbox/amdb/<ipython console> in <module>()
OperationalError: near "Allo": syntax error
Все же это работает (удалено в двух местах):
In [17]: c.execute("UPDATE movies SET rating = '8.7' WHERE name='Allo\ Allo\!\"\ \(1982\)'") Out[17]: <sqlite3.Cursor object at 0x9666e90>
Я не могу понять это. Я также не могу отказаться от этих ведущих цитат, потому что они на самом деле являются частью названия фильма.
Спасибо.