我有一个字典清单。例如:
result = {
'a': ['x', 'y', 'z'],
'b': ['p', 'q', 'r'],
'c': ['m', 'n', 'o']
}
我希望a,b和c成为表的标题以及该特定列下的相应列表。
我已经将字典从Cherrypy传递到html了,就像这样 返回tmpl.render(结果=结果)
添加: 这是html代码
<table id="myTable"> {% for k,v in result.items() %}
<th> {{ k }}</th>
{% for val in v %}
<tr>
<td> {{ val }}</td>
</tr>
{% endfor %} {% endfor %}
</table>
答案 0 :(得分:0)
根据您的逻辑,您的代码现在将执行以下操作(伪):
foreach key & value: add the key as a th,
then loop the value (because it is an array):
add a new table row with a table cell with that 'nested' value.
这将导致以下输出:
a
0
1
2
b
0
1
2
c
0
1
2
您想要做的是(伪):
Create a tr for the headers
Loop all keys: add headers for all keys (a, b and c)
Foreach row (remember i (iterator))
add a tr
for each key (col) add value[i] as a td
Close the tr
Close the table tag
我会尽力在您的代码中编写代码(查看您提供的代码段)。 注意:尚未对此进行测试。
<table id="myTable">
<tr>
{% for k,v in results.items() %}
<th> {{ k }}</th>
{% endfor %}
</tr>
{% for i in range(0, len(results[a])) %}
<tr>
{% for k,v in results.items() %}
<td>v[i]</td>
{% endfor %}
</tr>
{% endfor %}
</table>
也有一些库可以为您执行此操作:https://www.decalage.info/python/html(例如)