Python格式错误(不支持)

2024-05-13 07:01:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我用这个方法建立一个字符串。 但由于某些原因,我得到了以下错误

ValueError: unsupported format character ''' (0x27) at index 38

我不知道这是从哪里来的。我查过有没有错别字。在

^{pr2}$

这里我调用所有的上层代码

s.makeSelect(tableName="students", whereRoughly=([1,2], "Wes"))

这是实际输出

SELECT %s FROM %s (WHERE %s LIKE '%%s%' OR %s LIKE '%%s%' )ORDER BY %s;
['*', 'students', 1, 'Wes', 2, 'Wes', 'desc']

Tags: 方法字符串formatindex错误原因atlike
1条回答
网友
1楼 · 发布于 2024-05-13 07:01:48

问题在于:

"'%%s%'"

没有格式代码%',尝试使用它会导致错误。在

^{pr2}$

我假设您正在尝试获取SQL LIKE语法,如'%foo%'(两边用%括起来)和一个单引号。在

要使用Python中的旧样式%格式获得该格式,您需要像这样转义前导和尾随的百分比:

>>> "'%%%s%%'" % "foo"
"'%foo%'"

(见docs.

这是更干净的现代风格^{}

>>> "'%{0}%'".format('foo')
"'%foo%'"

(另外,上面关于不使用+=来构建字符串的注释是一个有效的建议formatjoin)。在

相关问题 更多 >