循环使用Python和Django中的Dict列表

循环使用Python和Django中的Dict列表,python,django,Python,Django,我有一个查询集,返回如下结果: defaultdict(<type 'list'>, { 123: [ {'field1': 123, 'field2': 'August', 'field3': 50}, {'field1': 123, 'field2': 'September', 'field3': 25}, {'field1': 123

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

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}
            ],
    })
我尝试了在
results.items
中循环,但它没有返回任何结果。我尝试使用
键,value
,它也不返回任何内容。我最初认为我能够为循环创建一个嵌套的
,并循环通过
每个

        {% for each in results %}
            {% for row in each %}
                {{ row }}
            {% endfor %}
        {% endfor %}
但是返回的
'int'对象不可编辑


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

我还没有看到Python的这种语法。我没有和django一起工作过。所以,我将使用您自己的格式,只修改一件事。对于结果[每个]
中的行,您应该使用
,而不是对每一行说
<代码>结果
是一个字典,
每个
都是一个键。如果您想要该键的字典值,则需要通过
results[each]
获得它。现在,如果值是可编辑的,则可以循环遍历该值

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

实际上,您正在尝试遍历一个整数

第一个for循环遍历
results.keys()
,这就是为什么要返回第一个字典中的键整数

类似的内容在python中也可以使用:

for x in results:
    for y in results[x]:
        print y
或者,您可以像这样使用.items()/.iteritems():

for k, v in results.items():
    for small_dict in v:
        print small_dict

考虑到您正试图在Django模板中实现这一点,我认为第一个解决方案对您来说是可行的

您可以使用dict的
value
方法来获取每个子列表,然后可以在嵌套循环中对其进行迭代:

{% for each in results.values %}
    {% for row in each %}
        {{ row.field1 }}
        {{ row.field2 }}
        {{ row.field3 }}
    {% endfor %}
{% endfor %}

非常感谢。部分问题是我通过执行
results=defaultdict(list)
初始化
results
,但是执行
results={}
处理
results.items
for k, v in results.items():
    for small_dict in v:
        print small_dict
{% for each in results.values %}
    {% for row in each %}
        {{ row.field1 }}
        {{ row.field2 }}
        {{ row.field3 }}
    {% endfor %}
{% endfor %}