Django模板 - 如何迭代和访问字典?

时间:2013-09-24 09:30:38

标签: python django

我有一本字典要迭代,我把它打印在我的网页上并得到了这个:

dict = {
    u'256': <itertools._grouper object at 0x8361d0e90>,
    u'59': <itertools._grouper object at 0x83607c110>,
    u'59': <itertools._grouper object at 0x83607c050>,
    u'1975555': <itertools._grouper object at 0x8361bc490>,
    u'91': <itertools._grouper object at 0x836162110>
}

如何在字典中访问此对象的值? 这是我尝试过的东西:

{% for code, codelist in dict.items %}
    {% for innerlists in codelist %}
        // Here I want to display the values in the dict's object
    {% endfor %}
{% endfor %}

2 个答案:

答案 0 :(得分:1)

如果您是用户itertools.groupby,请注意docs pages中的注释:

  

返回的组本身就是一个迭代器,它与groupby()共享底层的iterable。由于源是共享的,因此当groupby()对象处于高级时,前一个组将不再可见。因此,如果稍后需要该数据,则应将其存储为列表

groups = []
uniquekeys = []
data = sorted(data, key=keyfunc)
for k, g in groupby(data, keyfunc):
    groups.append(list(g))      # Store group iterator as a list
    uniquekeys.append(k)

(Bolds补充)

不要将dict用作varname,在创建此dict时,请将_grouper值转换为list。您的模板似乎没有任何问题。

答案 1 :(得分:0)

{% for item in dict%}
//do stuff
{% endfor %}

应该有效,除非你的dict有一个你要迭代的嵌套属性“items”。