如何解决如何使用python创建HTML表
我有一个要放在html表中的国家/地区列表。
places = ['Japan','China','North Korea','South Korea','Vietnam','Taiwan','Philippines','Myanmar']
现在我只拥有这段代码,该代码仅将<td>
和</td>
放在每个国家的开头和结尾。对于读取的每第3行或每个国家/地区,我都很难设置<tr>
和</tr>
。其实我不知道该怎么做哈哈哈。 (请注意,在我的代码中,我仅使用print
来显示所需的输出,稍后我将使用write)
for x in places:
print('<td>' + x + '</td>')
输出:
<td>Japan</td>
<td>China</td>
<td>North Korea</td>
<td>South Korea</td>
<td>Vietnam</td>
<td>Taiwan</td>
<td>Philippines</td>
<td>Myanmar</td>
所需的输出:
<tr>
<td>Japan</td>
<td>China</td>
<td>North Korea</td>
</tr>
<tr>
<td>South Korea</td>
<td>Vietnam</td>
<td>Taiwan</td>
</tr>
<tr>
<td>Philippines</td>
<td>Myanmar</td>
</tr>
注意:位置列表的数量不是固定的。我的意思是有时它可能会变成类似这些places = ['Japan','China']
或只是places = ['Japan']
解决方法
您可以使用列表切片
places = ['Japan','China','North Korea','South Korea','Vietnam','Taiwan','Philippines','Myanmar']
for i in range(0,len(places),3):
row = "<tr>"
for j in places[i:i+3]:
row+=f"\n<td>{j}</td>"
print(row+"\n</tr>")
输出:
<tr>
<td>Japan</td>
<td>China</td>
<td>North Korea</td>
</tr>
<tr>
<td>South Korea</td>
<td>Vietnam</td>
<td>Taiwan</td>
</tr>
<tr>
<td>Philippines</td>
<td>Myanmar</td>
</tr>
,
您还可以在此处使用jinja2
模板引擎
例如:
from jinja2 import Template
html_template = """{% for p in places %}
<tr>
{% for city in p %}
<td>{{ city }}</td>
{% endfor %}
</tr>
{% endfor %}"""
places = ['Japan','Myanmar']
places = [places[i: i+3] for i in range(0,3)]
template = Template(html_template)
print(template.render(places=places))
输出:
<tr>
<td>Japan</td>
<td>China</td>
<td>North Korea</td>
</tr>
<tr>
<td>South Korea</td>
<td>Vietnam</td>
<td>Taiwan</td>
</tr>
<tr>
<td>Philippines</td>
<td>Myanmar</td>
</tr>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。