如何迭代ReportLab的rml文件中的列表

时间:2013-07-26 10:47:35

标签: python django python-2.7 django-templates reportlab

我在python中创建了字典,例如

dictionary_list = [{'1':1,'2': 2,'3': 3},{'1': 1,'2':2,'3':3,'4':4},{'1':1,'2':2}]

现在我想使用python语法迭代这个dict。我试过这个:

{% for (key_o, val_o) in dictionary_list.items %}

但它不起作用。然后我尝试了这个,因为以前的语法没有帮助。

{% for dictionary in dictionary_list %}
     {% for (key_o, val_o) in dictionary.items %}
        {{ val_o }}
     {% endfor %}
{% endfor %}

但仍然没有打印val_o's值。由于我无法在Report lab的报告标记语言(RML文件)中迭代字典列表,我感到很沮丧。请指导我,谢谢。

1 个答案:

答案 0 :(得分:4)

这是集合的列表,而不是dicts:

>>> [ type(x) for x in [{1,2,3},{1,2,3,4},{1,2}]]
[<type 'set'>, <type 'set'>, <type 'set'>]

尝试这样的事情:

set_list = [{1,2,3},{1,2,3,4},{1,2}]
{% for item in set_list %}
     {% for x in item %}
        {{ x }}
     {% endfor %}
{% endfor %}

<强>更新

由于django标签中不允许使用括号,因此您不应使用它们。这应该可以正常工作:

{% for key_o, val_o in dictionary.items %}

如果您只想要来自dicts的值而不是键,那么只需使用dict.values:

{% for val_o in dictionary.values %}