在数据库查询字符串中如何正确转义引号?

45 投票
9 回答
128091 浏览
提问于 2025-04-15 11:46

我试过很多种Python模块,但它们要么转义得太多,要么方式不对。你们找到的在Python中转义引号("和')的最佳方法是什么?

9 个回答

11

想要把字符串处理得简单又标准,或者把其他对象转换成程序能识别的形式,最简单的方法就是用内置的 repr() 函数。这个函数可以把一个对象转换成你在手动编写代码时需要输入的样子。

比如:

s = "I'm happy I am \"here\" now"
print repr(s)
>>  'I\'m happy I am "here" now'

没有什么奇怪的技巧,这个功能是内置的,基本上都能用得上。

24

使用 json.dumps

>>> import json
>>> print json.dumps('a"bc')
"a\"bc"
37

如果这是数据库查询的一部分,你应该可以使用参数化的SQL语句

除了处理你的引号,这种方法还可以处理所有特殊字符,并能保护你免受SQL注入攻击

撰写回答