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

I'd suggest use an OrderedDict to get the data in the order it was inserted.

Dictionaries don't maintain the order but an OrderedDict which is a sub-class 0f dict can maintain the order.

Example:

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

Note: OrderedDict was introduced in python 2.7, so will not work in previous versions.

于 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 回答