开发者

Python 2.5 String formatting problem!

I am trying to use the python 2.5 string formatting however I have run into problem in the following example:

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

It gives me the following error:ValueError: unsupported format character ''' (0x27) at in开发者_StackOverflow中文版dex 106. Can anyone help me?


Never use string formatting for composing sql queries like that! Use your database module to do the interpolation -- it will do it with correct escaping, so that this doesn't happen to you: http://xkcd.com/327/

In case you want to use that formatting for different things than sql, use %(foo)s (or d, or whatever format you need).


You are missing the format characters, i.e.:

"INSERT INTO ... %(url)s, ..." % values

...if you want to format URL as a string.


You need to specify explicit conversion flags:

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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜