如何在Django模板中阅读嵌套字典?

我正在尝试在Django的模板中访问以下数据结构。但是对我来说太难了,也太想办法了。


{ Day1 : { Room1 : [(datetime.date(), (totalTime1, Flag1)),

                    (datetime.date(), (totalTime2, Flag2)),

                    (datetime.date(), (totalTime3, Flag3)),

                    (datetime.date(), (totalTime4, Flag4))],


           Room2 : [(datetime.date(), (totalTime1, Flag1)),

                    (datetime.date(), (totalTime2, Flag2)),

                    (datetime.date(), (totalTime3, Flag3)),

                    (datetime.date(), (totalTime4, Flag4))],


           Room3 : [(datetime.date(), (totalTime1, Flag1)),

                    (datetime.date(), (totalTime2, Flag2)),

                    (datetime.date(), (totalTime3, Flag3)),

                    (datetime.date(), (totalTime4, Flag4))] },


 Day2 : {  Room1 : [(datetime.date(), (totalTime1, Flag1)),

                    (datetime.date(), (totalTime2, Flag2)),

                    (datetime.date(), (totalTime3, Flag3)),

                    (datetime.date(), (totalTime4, Flag4))],


           Room2 : [(datetime.date(), (totalTime1, Flag1)),

                    (datetime.date(), (totalTime2, Flag2)),

                    (datetime.date(), (totalTime3, Flag3)),

                    (datetime.date(), (totalTime4, Flag4))],


           Room3 : [(datetime.date(), (totalTime1, Flag1)),

                    (datetime.date(), (totalTime2, Flag2)),

                    (datetime.date(), (totalTime3, Flag3)),

                    (datetime.date(), (totalTime4, Flag4))] } }

可能它的数据结构非常复杂,但对此感到抱歉。我无法分解。我的选择是有限的。我想在一个循环中访问每个元素。我该怎么办?


森林海
浏览 216回答 4
4回答

达令说

它不能在单个循环中完成,但是可以通过一些嵌套来完成:{% for day, rooms in mydict.items %}  {% for room, dates_and_flags in rooms.items %}    {% for date, time_and_flags in dates_and_flags %}        {{ date }}:{{ time_and_flags }}    {% endfor %}  {% endfor %}{% endfor %}因为time_and_flags是元组,所以您可以使用time_and_flags.0和使用标志访问时间time_and_flags.1。

一只名叫tom的猫

您的问题并没有完全说明您要如何使用嵌套字典,但这是一个疯狂的猜测:for day,rooms in days.iteritems():    print "Rooms for day {}:".format(day)    for room, times in rooms.iteritems():        print "  . Room {}".format(room)        for t in times:            print "Date : {} | Total time : {} | Flag : {}".format(t[0], t[1][0], t[1][1])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python