首页 > 解决方案 > 忽略python中的转义字符

问题描述

我正在尝试将标题插入数据库。有时标题有引号,它会引发错误。

我不能用 \" 替换引号,因为它认为我正在转义引号。

sql = 'UPDATE `table_name` SET `title`="{}";'

title = 'A "Title" With Quotes'

sql.format(title.replace('"','\"'))

这会用更多的引号替换引号,因此它不会改变任何内容。

'UPDATE `table_name` SET `title`="A "Title" With Quotes";'

如果我试图逃避反斜杠,它不会逃避任何东西。

sql.format(title.replace('"','\\"'))

'UPDATE `table_name` SET `title`="A \\"Title\\" With Quotes";'

标签: pythonsqlpymysql

解决方案


最好的方法是使用三引号,将里面的文本解释为字符串:

sql = """UPDATE `table_name` SET `title`="{}";""" 

你可以格式化它是你想要的:

sql = """UPDATE `table_name` SET `title`="{}";""".format('A \\"B\\"')
print(sql)

输出:

UPDATE `table_name` SET `title`="A \"B\"";

适用于 MySQL


推荐阅读