Python 2.5字符串格式化问题!

Nas*_*sir 0 python string-formatting

我试图使用python 2.5字符串格式,但我遇到了以下示例中的问题:

values = {
          'url': 'http://blabla.com',
          'link' : 'http://blabla.com',
          'username' : 'user',
          'spot'    : 0,
          'views'    : 10,
          'date'    : 3232312,
          'private' : 1, 

          }

query = """insert into hyves.Image (URL, StaticLink , HostUsername, SpotCount, ViewCount, UploadDate) values ('%(url)','%(link)','%(username)',%(spot),%(views),%(date), %(private) )""" % values

print query
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误:ValueError:索引106处不支持的格式字符'''(0x27).任何人都可以帮助我吗?

Rad*_*ski 9

永远不要使用字符串格式来编写像这样的SQL查询!使用您的数据库模块进行插值 - 它将通过正确的转义执行此操作,因此不会发生这种情况:http://xkcd.com/327/

如果你想将这种格式用于sql之外的其他东西,请使用%(foo)s(或者d,或者你需要的任何格式).