【问题标题】:Print select values of python dictionary打印python字典的选择值
【发布时间】: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


【解决方案1】:

我想我明白了。嵌套是什么让我感到困惑,我在匹配一个 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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    • 1970-01-01
    • 2020-11-18
    • 2011-06-27
    • 2023-03-23
    相关资源
    最近更新 更多