首页 > 解决方案 > 循环遍历 Python 和 Django 中的列表字典列表

问题描述

我有一个返回如下结果的查询集:

defaultdict(<type 'list'>,
    {
        123: 
            [
                {'field1': 123, 'field2': 'August', 'field3': 50},
                {'field1': 123, 'field2': 'September', 'field3': 25},
                {'field1': 123, 'field2': 'October', 'field3': 70}
            ],
        789: 
            [
                {'field1': 789, 'field2': 'August', 'field3': 80},
                {'field1': 789, 'field2': 'September', 'field3': 22},
                {'field1': 789, 'field2': 'October', 'field3': 456}
            ],
    })

我正在尝试遍历模板中的列表,但我只能获得要显示的密钥,例如:

        {% for each in results %}
            {{ each }}<br>
        {% endfor %}

回报:

123
789

我试过循环遍历results.items,它什么也没返回。我试过使用key, value,它也没有返回任何东西。我最初认为我可以有一个嵌套的for loop,并循环遍历each

        {% for each in results %}
            {% for row in each %}
                {{ row }}
            {% endfor %}
        {% endfor %}

但这又回来了'int' object is not iterable

我不确定我错过了什么,如果有人能指出我正确的方向!

标签: pythondjango

解决方案


我还没有看到 Python 的这种语法。我没有使用过 django。所以,我只会使用你自己的格式,只修改一件事。而不是说for row in each,你应该使用for row in results[each]. results是字典,each是键。如果你想要那个字典的那个键的值,你需要通过results[each]. 现在,如果它是可迭代的,您可以循环遍历该值。

    {% for each in results %}
        {% for row in results[each] %}
            {{ row }}
        {% endfor %}
    {% endfor %}

推荐阅读