Python SQL语句中单引号的格式

Python SQL语句中单引号的格式,python,Python,我的问题很简单,在Python中,如何格式化包含单引号的SQL语句 我有一个地名 "Musee d'Orsay" 我想要的是 "Musee d\'Orsay" 所以,我尝试用下面的语句替换单引号 str.replace("'","\'") 但是,它返回原始字符串。你能帮我什么忙吗 双斜杠很有效 str.replace("'","\\'") 好的,谢谢大家的回复。我已经弄明白了 我必须通过将单引号增加一倍来避免它 str.replace(“'”,“'”) 将名称值插入表中(奥赛博物馆)

我的问题很简单,在Python中,如何格式化包含单引号的SQL语句

我有一个地名

"Musee d'Orsay"
我想要的是

"Musee d\'Orsay"
所以,我尝试用下面的语句替换单引号

str.replace("'","\'")
但是,它返回原始字符串。你能帮我什么忙吗

双斜杠很有效

str.replace("'","\\'")

好的,谢谢大家的回复。我已经弄明白了

我必须通过将单引号增加一倍来避免它

str.replace(“'”,“'”)

将名称值插入表中(奥赛博物馆)


它对我有用

您不应该通过准备将进入其中的字符串来创建sql查询:您应该使用占位符,让库为您执行转义工作

确切的语法可能会因您使用的数据库而异。例如,在:


您是否回答了自己的问题?在“Musee d/'Orsay”中,您的意思是“Musee d'Orsay”?您确实应该使用参数化查询,而不是通过字符串插值或串联来构造SQL查询。您通常让数据库连接器通过使用SQL参数来处理转义值:
cursor.execute('SELECT*FROM tablename WHERE column1=?and column2=?',(param1,param2))
;这也可以防止SQL注入攻击。有关支持的确切参数语法的详细信息,请咨询特定的数据库库(可以是
%s
:1
:param_name
%(param_name)中的一个或两个)它帮不了我,先生,蟒蛇3?
m = "Musée d'Orsay"
cursor.execute('SELECT * FROM table WHERE museum=?', m)