我有一个Python脚本,可以将原始电影文本文件读入一个sqlite数据库。
我使用re.escape(title)在字符串中添加转义字符,以便在执行插入之前使其成为db安全的字符串。
Why does this not work:
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>
我搞不清楚。我也不能抛弃那些领先的引号,因为它们实际上是电影名称的一部分。