【发布时间】:2016-11-15 03:38:47
【问题描述】:
我有以下嵌套字典,它由多个设备以及每个设备的两个值组成。我正在尝试将这些显示在烧瓶页面内的表格中。
[(
{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
我想让每一行显示每个设备的每一行中的“主机”、“值”、“值”。
我是在正确的轨道上还是有更好的方法来解决这个问题?
一如既往的感谢!!
【问题讨论】:
-
如果只想打印两个键,为什么需要遍历整个字典呢?只需打印出这两个键即可。
-
我不反对这些选项。我想我只是不够绿,无法理解如何并且一直在阅读文档和其他解决方案。如果我能找到正确的方向,我不介意投入研究和工作。
标签: python dictionary flask jinja2