2

重複の可能性:
挿入された順序で辞書からアイテムを取得するにはどうすればよいですか?

djangoビューとテンプレートに問題があります

次のような会議に関連する詳細を取得した後

        for meeting in get_meetings:
           if meeting.venue_id ==None:
                 mee_data = {} 
                 mee_data['id'] = meeting.id
                 getdate = meeting.meeting_datetime
                 mee_data['date'] = getdate.strftime("%Y-%m-%d")
                 mee_data['end_time'] = meeting.end_time
                 mee_data['meeting_duration'] = meeting.meeting_duration 
                 mee_data['start_time'] = meeting.start_time 
                 mee_data['meetingID'] = meeting.meetingID
                 mee_data['id'] = meeting.id
                 mee_data['start_time'] = meeting.start_time 

                 mee_data['name'] = meeting.name

                 getall.append(mee_data) 

getallは、上記で宣言したリストです。

辞書データを追加した後。

テンプレートの結果は次のようになると思います

[{"id": "REG_431103567", "date": "", "end_time": "", "meeting_duration": "", "start_time": "2012-10-29", "meetingID": 192dnjd, "name": "TEsts"},...]

基本的にキーの順序ですが、残念ながら結果は次のようになります。

[{"meetingID": "REG_431103567", "start_time": "", "meeting_duration": "", "end_time": "", "date": "2012-10-29", "id": 192, "name": "TEsts"},...]

キーとそれに対応する値を適切な方法で取得できるように、ここで何をすべきかを教えてください。

ありがとう

4

2 に答える 2

6

OrderedDictを使用して、挿入された順序でデータを取得することをお勧めします。

辞書は順序を維持しませんOrderedDictが、サブクラス0fであるanは順序dictを維持できます。

例:

>>> from collections import OrderedDict
>>> d=OrderedDict()
>>> d["key1"]="foo"
>>> d["key2"]="bar"
>>> d
OrderedDict([('key1', 'foo'), ('key2', 'bar')])

注:OrderedDictPython 2.7で導入されたため、以前のバージョンでは機能しません。

于 2012-11-02T09:18:14.387 に答える
1

OrderedDict通常の代わりに使用しますdict

from collections import OrderedDict

for meeting in get_meetings:
           if meeting.venue_id ==None:
                 mee_data = OrderedDict()
                 ...
于 2012-11-02T09:20:04.663 に答える