Python 格式字符串:'Truncated incorrect DOUBLE value'
Python format strings: 'Truncated incorrect DOUBLE value'
我用sid
格式化一个字符串sql
(注意:sid
的类型是str
)
sid = "34" #type(sid) is string, like 34, 34s
sql = '''SELECT * FROM table_name WHERE sid={sid}'''.format(sid=sid)
print sql
的结果是:
SELECT * FROM table_name WHERE sid=34
这出乎我的意料(34
vs "34"
):
SELECT * FROM table_name WHERE sid="34"
在使用这个sql
作为cur.execute(sql)
的参数时,遇到如下错误,导致错误输出。
Warning: Truncated incorrect DOUBLE value: '88s'
如果您想用引号括起您的值,您可以将其添加到您的字符串中,并确保使用 \
转义您的 "
个字符
>>> 'SELECT * FROM table_name WHERE sid=\"{sid}\"'.format(sid=sid)
'SELECT * FROM table_name WHERE sid="34"'
更简洁的解决方案,使用转换标志!r:
>>> sid = "34"
>>> sql = 'SELECT * FROM table_name WHERE sid={sid!r}'.format(sid=sid)
>>> sql
"SELECT * FROM table_name WHERE sid='34'"
str.format()
中有两个转换标志:
!s
在值 上调用 str()
!r
调用 repr()
值
我用sid
格式化一个字符串sql
(注意:sid
的类型是str
)
sid = "34" #type(sid) is string, like 34, 34s
sql = '''SELECT * FROM table_name WHERE sid={sid}'''.format(sid=sid)
print sql
的结果是:
SELECT * FROM table_name WHERE sid=34
这出乎我的意料(34
vs "34"
):
SELECT * FROM table_name WHERE sid="34"
在使用这个sql
作为cur.execute(sql)
的参数时,遇到如下错误,导致错误输出。
Warning: Truncated incorrect DOUBLE value: '88s'
如果您想用引号括起您的值,您可以将其添加到您的字符串中,并确保使用 \
"
个字符
>>> 'SELECT * FROM table_name WHERE sid=\"{sid}\"'.format(sid=sid)
'SELECT * FROM table_name WHERE sid="34"'
更简洁的解决方案,使用转换标志!r:
>>> sid = "34"
>>> sql = 'SELECT * FROM table_name WHERE sid={sid!r}'.format(sid=sid)
>>> sql
"SELECT * FROM table_name WHERE sid='34'"
str.format()
中有两个转换标志:
!s
在值 上调用 !r
调用repr()
值
str()