我有以下嵌套字典,它由多个设备组成,每个设备有两个值。我试图在烧瓶页面的表格中显示这些。
[(
{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;从每个设备的每一行。
我是在正确的轨道上还是有更好的方法来解决这个问题?
一如既往地谢谢!!
答案 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>