2012-07-06 60 views
4

我有蟒蛇即一個list of dictionary如何迭代python中的字典列表?

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'}] 

我想用所有的按鍵和listofobs變量的值在Django的模板。例如:

對於第一次迭代:

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 

等..

回答

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

會遍歷列表dict的,然後在模板中使用它們只需將它包裝在所需的django語法中,這與常規python非常相似。

3

Django的模板語法,您可以遍歷類型的字典列表:

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

所有你需要的是確保listofobjs是在你的渲染上下文。

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 %}