如何使用字符串格式获取%

时间:2013-03-20 11:00:40

标签: python string

我想在运行时在python 2.6中创建一个SQL语句,如下所示。

SQL = SELECT * FROM table1 where col1 LIKE '%somthing%'

上面的一个在数据库服务器上正常运行,但我在python中创建此字符串时遇到问题。我使用字符串格式%s来添加变量。我的python代码如下所示

var = "somthing"

SQL = "SELECT * FROM table1 where col1 LIKE '%%s%'" % var

我得到以下追溯

Traceback (most recent call last):
  File "<stdin>", line 8, in <module>
ValueError: unsupported format character ''' (0x27) at index 247

2 个答案:

答案 0 :(得分:5)

您不对SQL使用字符串格式;改为使用SQL参数。

也就是说,您可以通过将其加倍%来逃避%%

SQL = "SELECT * FROM table1 where col1 LIKE '%%%s%%'" % var

强制性XKCD reference作为惯例警告。

答案 1 :(得分:0)

或者,您可以使用str.format

SQL = "SELECT * FROM table1 where col1 LIKE '%{}%'".format(var)