wrapper = """<html>
<head>
</head>
<body>
<table style="height: 100px;" width="500">
<tbody>
<tr>
<td rowspan="3"><a id="imgrec1" href="http://www.w3.org"><img src="%s" alt="Smiley face" width="50" height="100" /><br /><br /></a></td>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<tr>
<td rowspan="3"><a id="imgrec1" href="http://www.w3.org"><img src="%s" alt="Smiley face" width="50" height="100" /><br /><br /></a></td>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
<td>%s</td>
</tr>
<tr>
</tbody>
</table>
</body>
</html>"""
str=""
for i in reclist[:2]:
str=str + "I[\"" + i + "\"]," + "T[\"" + i + "\"]," +"R[\"" + i + "\"]," +"P[\"" + i + "\"],"
str = str[:-1]
print str
whole = wrapper % (str)
Output: I["M1"],T["M1"],R["M1"],P["M1"],I["M2"],T["M2"],R["M2"],P["M2"]
whole = wrapper % (str)
TypeError: not enough arguments for format string
由于wrapper
恰好有8%s而str
也有8个元组,但仍显示错误TypeError: not enough arguments for format string.
但是,如果我使用
,而不是str whole = wrapper %
(I["M1"],T["M1"],R["M1"],P["M1"],I["M2"],T["M2"],R["M2"],P["M2"])
然后它工作正常。
我引用stackoverflow stackoverflow来解决这个问题,但它没有帮助。
答案 0 :(得分:0)
我认为您收到错误,因为在格式化字符串时将字符串作为单个参数传递。 您最初可以创建一个列表:
str = []
for i in reclist[:2]:
str += [I[i], T[i] etc.]
然后使用:
whole = wrapper % tuple(str)
以便列表中的每个项目都作为单独的参数传递。