如何将列表字典转换为html表?

时间:2019-05-30 11:32:34

标签: html python-3.x dictionary flask cherrypy

我有一个字典清单。例如:

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>

1 个答案:

答案 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(例如)