我有一个python dict,看起来如下(由于隐私原因,重要信息被替换为“xxx”)。 我想在django模板中显示这个dict但它应该是有序的,所以它应该以“A”开头,然后继续“B”而不是“H”
这是我的命令(缩写):
{ 'A': [ {'birthday_date': None,
'first_name': 'Alberto',
'last_name': 'xxx',
'name': 'Alberto xxx',
'uid': xxx},
{ 'birthday_date': None,
'first_name': 'Antony',
'last_name': 'xxx',
'name': 'Antony xxx',
'uid': xxx}],
'H': [ { 'birthday_date': '08/28',
'first_name': 'Hitoshi',
'last_name': 'xxx',
'name': 'Hitoshi xxx',
'uid': xxx}],
'C': [ { 'birthday_date': '05/07/1985',
'first_name': 'Chr',
'last_name': 'xxx',
'name': 'Chr xxx',
'uid': xxx}],
'E': [ { 'birthday_date': None,
'first_name': 'Edimond',
'last_name': 'xxx',
'name': 'Edimond xxx',
'uid': xxx},
{ 'birthday_date': '08/30',
'first_name': 'Erika',
'last_name': 'xxx',
'name': 'Erika xxx',
'uid': xxx}],
'B': [ { 'birthday_date': '08/16/1987',
'first_name': 'Bhaktin',
'last_name': 'xxx',
'name': 'Bhaktin xxx',
'uid': xxx}],
'I': [ { 'birthday_date': '08/25/1987',
'first_name': 'Ivette',
'last_name': 'xxx',
'name': 'Ivette xxx',
'uid': xxx}]}
这是我的django模板:
{% for letter, friend in bdays_all.items %}
<h2>{{ letter }}</h2>
{% for user in friend %}
...
{% endfor %}
{% endfor %}
这很好用,但没有订购。但这就是我需要的。我尝试了python的sorted()函数,但没有任何成功。我只想订购这些信件。似乎微不足道,但我想它不是。
有什么想法吗?
提前多多谢谢!
答案 0 :(得分:10)
字典未分类。
您需要将视频转换为视图中的嵌套列表:最简单的方法就是调用sorted(bdays_all.items())
。
答案 1 :(得分:0)
您还可以在视图中创建一个带有排序键的新词典:
dictio = {'a': 'orange', 'c':'apple', 'b': 'bannana'}
di = {}
for key in sorted(dictio.iterkeys()):
di[key] = dictio[key]
结果:
di = {'a': 'orange', 'b': 'bannana', 'c': 'apple'}