2016-09-19 98 views
0

我有一個包含字典的列表,我想將其輸出到HTML表格中。從字典列表中構建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> 

但我不知道該如何相應地獲取這些值以及它們的格式。

回答

1

我會用一個模板引擎makojinja2

實施例使用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> 
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>