如何迭代python中的字典列表?

时间:2012-07-06 23:31:00

标签: python django django-templates python-2.7

我在python中有一个list of dictionary,即

listofobs = [{'timestamp': datetime.datetime(2012, 7, 6, 12, 39, 52), 'ip': u'1.4.128.0', 'user': u'lovestone'}, {'timestamp': datetime.datetime(2012, 7, 6, 12, 40, 32), 'ip': u'192.168.21.45', 'user': u'b'}]

我想在Django模板中使用listofobs变量的所有键和值。例如:

第一次迭代:

timestamp = 7 july 2012, 12:39 Am
ip = 1.4.128.0
user = lovestone

和第二次迭代:

 timestamp = 7 july 2012, 12:40 Am
 ip =  192.168.21.45
 user = b

依旧......

3 个答案:

答案 0 :(得分:9)

for a in listofobs:
    print str( a['timestamp'] ), a['ip'], a['user']

将遍历dict列表,然后在模板中使用它们,只需将其包装在所需的django语法中,这与常规python非常相似。

答案 1 :(得分:3)

Django模板语法允许您遍历一个dicts列表:

{% for obj in listofobjs %}
    timestamp = {{ obj.timestamp }}
    ip = {{ obj.ip }}
    user = {{ obj.user }}
{% endfor %}

您需要确保listofobjs在您的上下文中进行渲染。

答案 2 :(得分:2)

查看built in for template tag的示例。

循环项目(你的外环):

{% for obj in listofobjs %}
    {# do something with obj (just print it for now) #}
    {{ obj }}
{% endfor %}

然后循环遍历字典对象中的项目:

{% for key, value in obj.items %}
    {{ key }}: {{ value }}
{% endfor %}