【发布时间】:2014-06-18 00:55:24
【问题描述】:
我正在用这种方法构建一个字符串。 但由于某种原因,我收到以下错误
ValueError: unsupported format character ''' (0x27) at index 38
我不知道这是从哪里来的。我检查了拼写错误,但没有。
s = "SELECT %s FROM %s "
data = [colName, tableName]
if whereRoughly:
s+= "(WHERE "
for i in range(len(whereRoughly[0])):
s += "%s LIKE '%%s%' "
if i+1 < len(whereRoughly[0]): s += "OR "
data.append(whereRoughly[0][i])
data.append(whereRoughly[1])
s+= ")"
s += "ORDER BY %s;"
data.append("desc")
print s
print data
print s % tuple(data)
这里我调用所有的上层代码
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']
【问题讨论】:
-
另外,你真的,真的不应该在 python 中的字符串上使用
+=。您应该正确使用format和join的组合。
标签: python formatting