我正在尝试编写一个函数,该函数使用生成的列表中的信息自动设置HTML文件。下面的该块是多行字符串的一部分。
`"""...
<tr>
<td>10</td>
<th>"""+str(List_Data[9])+"""</th>
<th>"""+str(Extra_Data[9])+"""</th>
</tr>
</table>
..."""`
Extra_Data是数字等级的列表,因此Extra_Data [9] = 7.2。当我运行代码时,出现以下错误;
`<th>"""+str(Extra_Data[9])+"""</th>
TypeError: can only concatenate str (not "list") to st`
我不确定我还能如何使用它,因为str(Extra_Data [9])不能解决问题,这是我可以想到的将所有列出的数据分开的唯一方法HTML代码。任何帮助将不胜感激!
谢谢。
答案 0 :(得分:1)
Python具有非常方便的字符串格式化方法.format()
,请看here。您所需要做的只是遵循以下步骤:
a = """
<tr>
<td>10</td>
<th>{0}</th>
<th>{1}</th>
</tr>
</table>
""".format(List_Data[9], Extra_Data[9])
print a
漩涡括号{n}
中的数字是.format()
函数第n个索引处参数的占位符。
要更进一步,您可以遍历数据列表以编程方式创建每一行:
Table_Array = list()
for index, value in enumerate(List_Data):
Table_Array.append("""
<tr>
<td>{0}</td>
<th>{1}</th>
<th>{2}</th>
</tr>
""".format(index, List_Data[index], Extra_Data[index])
答案 1 :(得分:1)
因此,在我疯狂地尝试解决此问题的过程中。我改变了这一行。
<th>"""+str(float(Extra_Data[9]))+"""</th>
,然后开始工作。我不知道为什么,所以我将其更改回原始行,然后继续工作。对于为什么会发生这种情况,我感到非常困惑,但是就目前而言,我的代码可以正常工作,并且与不工作时的代码相同。我不确定为什么或如何。