我的问题很简单,在Python中,如何格式化包含单引号的SQL语句?
我有一个地名
"Musee d'Orsay"
我想要的是
"Musee d\'Orsay"
所以,我尝试使用以下语句替换单引号
str.replace("'","\'")
但是,它返回原始字符串。你能给我任何帮助吗?
双斜线运作良好。
str.replace("'","\\'")
<小时/> 好的,谢谢你的回复。我已经弄清楚了。
我必须通过加倍单引号来逃避它。
str.replace( “'”, “ '”')
INSERT INTO table_name VALUES(Musee d''Orsay);
它对我有用。
答案 0 :(得分:6)
你不应该通过准备进入它的字符串来创建sql查询:你应该使用占位符并让库为你做逃逸工作。
根据您使用的数据库,确切的语法可能会发生变化。例如,在sqlite中:
m = "Musée d'Orsay"
cursor.execute('SELECT * FROM table WHERE museum=?', m)