打印python词典的选择值

时间:2016-11-15 03:38:47

标签: python dictionary flask jinja2

我有以下嵌套字典,它由多个设备组成,每个设备有两个值。我试图在烧瓶页面的表格中显示这些。

[(
    {u'host': u'Spine1', u'type_instance': u'sysName', u'type': u'counter', u'value': 0, u'time': u'2016-11-09T21:44:00Z'}, 
    {u'host': u'Spine1', u'type': u'uptime', u'value': 104473.72, u'time': u'2016-11-09T21:44:00Z'}, 
    {u'host': u'Spine1', u'type': u'gauge', u'value': 249119600.0, u'time': u'2016-11-09T22:39:12Z'}), 
    (
    {u'host': u'leaf1', u'type_instance': u'sysName', u'type': u'counter', u'value': 0, u'time': u'2016-11-09T21:44:00Z'}, 
    {u'host': u'leaf1', u'type': u'uptime', u'value': 104466.68000000001, u'time': u'2016-11-09T21:44:00Z'}, 
    {u'host': u'leaf1', u'type': u'gauge', u'value': 249069928.0, u'time': u'2016-11-09T22:39:12Z'}), 
    (
    {u'host': u'leaf2', u'type_instance': u'sysName', u'type': u'counter', u'value': 0, u'time': u'2016-11-09T21:44:00Z'}, 
    {u'host': u'leaf2', u'type': u'uptime', u'value': 104465.77, u'time': u'2016-11-09T21:44:00Z'}, 
    {u'host': u'leaf2', u'type': u'gauge', u'value': 249119680.0, u'time': u'2016-11-09T22:39:12Z'}
)]

我的问题是我无法获得jinja for循环来选择正确的键,值对和我迷失了如何处理它。

这是我在烧瓶页面中显示表格的配置。

<table>
<th>Device</th><th>Uptime</th><th>Mem Used</th
 {% for host in HostAll %}
   <tr>
    {% for item in host %}  
      {% for key, value in item.iteritems() %}
        {% if key == 'host' %}
          <td><a href = "{{ item.host }}"><b>{{ item.host }}</b></a></td>
        {% elif key == 'value' %}
          <td> {{ value }}</td>
        {% endif %}
      {% endfor %}
    {% endfor %}
   </tr>
 {% endfor %}
</table>

以下是表格的外观 Table

我想让每一行显示&#34; Host&#34;,&#34; Value&#34;,&#34; Value&#34;从每个设备的每一行。

我是在正确的轨道上还是有更好的方法来解决这个问题?

一如既往地谢谢!!

1 个答案:

答案 0 :(得分:0)

想想我想出来了。嵌套是什么让我失望,我遇到的问题是匹配一个k,v和显示另一个。

    <table>
<th>Device</th><th>Uptime</th><th>Mem Used</th><th>CPU Used</th><th>Playbook</th>
 {% for host in HostAll %}
   <tr>
    {% for item in host %}  
      {% for key, value in item.iteritems() %}
        {% if value == 'sysName' %}
          <td><a href = "{{ item.host }}"><b>{{ item.host }}</b></a></td>
        {% elif value == 'uptime' %}
          <td> {{ item.value }}</td>
        {% elif value == 'gauge' %}
          <td> {{ item.value|filesizeformat(false) }}</td>
        {% endif %}
      {% endfor %}
    {% endfor %}
   </tr>
 {% endfor %}
</table>