【发布时间】:2011-03-14 07:07:13
【问题描述】:
我有一个 python 脚本,可以将原始电影文本文件读入 sqlite 数据库。
我使用 re.escape(title) 将转义字符添加到字符串中,以使它们在执行插入之前安全。
为什么这不起作用:
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>
我想不通。我也不能放弃那些主要的引语,因为它们实际上是电影标题的一部分。 谢谢。
【问题讨论】: