3

次のようなpython dictを取得しました(プライバシー上の理由により、重要な情報は「xxx」に置き換えられました)。このdictをdjangoテンプレート内に表示したいのですが、順序付けする必要があるため、「A」で始まり、「H」ではなく「B」で続行する必要があります

これは私の口述です(短縮):

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

これは私のジャンゴテンプレートです:

{% for letter, friend in bdays_all.items %}
    <h2>{{ letter }}</h2>
    {% for user in friend %}
         ...
    {% endfor %}
{% endfor %}

これはうまく機能しますが、順序付けられていません。しかし、それは私が必要なものです。私はpythonのsorted()関数ですべてを試しましたが、成功しませんでした。文字だけ注文したいです。些細なことのようですが、そうではないと思います。

何か案は?

よろしくお願いします!

4

2 に答える 2

10

辞書はソートされていません。

ビューで dict をネストされたリストに変換する必要があります。最も簡単な方法は、sorted(bdays_all.items()).

于 2012-12-13T10:45:09.460 に答える
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'}
于 2012-12-13T11:27:38.453 に答える