Python 2.5 字符串格式化问题!
我正在尝试使用 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
它给出了以下错误:ValueError: 索引 106 处不支持的格式字符 ''' (0x27)。 谁能帮助我吗?
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 index 106.
Can anyone help me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
切勿使用字符串格式来编写这样的 SQL 查询!使用您的数据库模块进行插值 - 它将通过正确的转义来完成,这样您就不会发生这种情况: http://xkcd.com/327/
如果您想将该格式用于与 sql 不同的内容,请使用
%(foo)s
(或d
,或任何您需要的格式)。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
(ord
, or whatever format you need).您缺少格式字符,即:
...如果您想将 URL 格式化为字符串。
You are missing the format characters, i.e.:
...if you want to format URL as a string.
您需要指定 显式转换 标志:
You need to specify explicit conversion flags: