python中使用数据库时的特殊字符问题

这两天在弄个小程序,需要用数据库,程序没什么,都是轻车熟路,可是处理数据库时遇到了问题,要插入的数据有几百万行,数据一多,情况也就复杂了,有些数据里面包含有 ' , " , ! 等特殊字符,导致insert select时出错。 刚开始遇到单引号出错,我就把sql语句里面换成双引号,后来遇到双引号我就没辙了,经过反复的测试,发现python的sql api已经能很好的解决这种问题了,关键代码如下:

v = v.decode('utf-8', 'ignore')
c.execute("SELECT id FROM passwd WHERE value = ?", [v])

p = p.decode('utf-8', 'ignore')
c.execute("INSERT INTO passwd(value) VALUES(?)", [p])