我有一个包含字典的列表,我想将其输出到HTML表格中。
我的列表如下所示:
[{'description': 'KA8ts5', 'password': 'KA8ts5', 'username': 'test4'},
{'description': '5j6mEF', 'password': '5j6mEF', 'username': 'test5'}]
我试图让它看起来如下:
<tr><td>test4</td><td>KA8ts5</td></tr>
<tr><td>test5</td><td>5j6mEF</td></tr>
但我不确定如何获取这些值以及相应地格式化它们。
答案 0 :(得分:1)
使用mako
的示例:
from mako.template import Template
template = """
<table>
% for user in users:
<tr>
<td>${user['username']}</td>
<td>${user['description']}</td>
</tr>
% endfor
</table>
"""
users = [
{'description': 'KA8ts5', 'password': 'KA8ts5', 'username': 'test4'},
{'description': '5j6mEF', 'password': '5j6mEF', 'username': 'test5'}
]
result = Template(template).render(users=users)
print(result)
打印:
<table>
<tr>
<td>test4</td>
<td>KA8ts5</td>
</tr>
<tr>
<td>test5</td>
<td>5j6mEF</td>
</tr>
</table>
答案 1 :(得分:0)
您可以使用contextlib
文档中提供的示例并相应地构建它。
基本上,使用@contextmanager
创建一个上下文管理器,添加初始和结束标记,并在with
块中打印出所需的值。上下文管理器,如文档中所示:
from contextlib import contextmanager
@contextmanager
def tag(name):
print("<%s>" % name, end='')
yield
print("</%s>" % name, end='')
以及使用它的实际样本:
l = [{'description': 'KA8ts5', 'password': 'KA8ts5', 'username': 'test4'},
{'description': '5j6mEF', 'password': '5j6mEF', 'username': 'test5'}]
for d in l:
with tag('tr'):
with tag('td'):
print(d['username'], end='')
with tag('td'):
print(d['password'], end='')
print()
输出:
<tr><td>test4</td><td>KA8ts5</td></tr>
<tr><td>test5</td><td>5j6mEF</td></tr>