如何在字符串python中的引号前插入\ backslash

Jak*_*ane -3 python escaping python-2.7

我想在我的字符串中的每个引号之前插入一个\,使用pymysql将其插入到我的SQL数据库中.如果我不转义引号,我无法在数据库中插入字符串.

举个例子:

str ="好的我准备好了"

一定是 :

str ="好吧我准备好了"

但是打印str必须是:"好吧我已经准备好了"

为了执行它我做了:

str = str.replace("'", "\'")
Run Code Online (Sandbox Code Playgroud)

但它不起作用,我仍然无法在我的数据库中插入我的字符串.我有错误消息:

您的SQL语法有错误; 查看与您的MySQL服务器版本相对应的手册,以获得正确的语法,使用附近的语义搜索软件可以支持从直观的聊天机器人到第1行的"aarc"的所有内容.

我也会打印我的字符串,看不到\

有谁知道我该怎么办?

Car*_*ans 5

你应该添加第二个\:

your_str= your_str.replace("'", "\\'")
Run Code Online (Sandbox Code Playgroud)


hri*_*yns 5

这有效,但不是 OP 想要的:

str = "ok I'm ready"
str = str.replace("'", "\\'")
print(str)
Run Code Online (Sandbox Code Playgroud)

编辑:

请看一下这个问题:A good way to escapequotes in a database query string?

还有另一个:Escape string Python for MySQL 他们使用了:

conn.escape_string()
Run Code Online (Sandbox Code Playgroud)

编辑 2:请参阅: Python pymySQL 发送带引号的字符串

并注意他们如何使用占位符:

cur.execute('UPDATE connections SET cmd=%s, client_new=1 where ip=%s', (command, ip))
Run Code Online (Sandbox Code Playgroud)


归档时间:

查看次数:

7381 次

最近记录:

9 年,1 月 前