In [1]: from collections import OrderedDict
In [2]: import operator
In [3]: from datetime import date
In [4]: d = {date(2012, 1, 1): 123, date(2010,2,5): 542, date(2011,3,3):76 }
In [5]: d # Good old dict
Out[5]: #it seems sorted, but it isn't guaranteed to be that way.
{datetime.date(2010, 2, 5): 542,
datetime.date(2011, 3, 3): 76,
datetime.date(2012, 1, 1): 123}
In [6]: o = OrderedDict(sorted(d.items(), key=operator.itemgetter(0)))
In [7]: o #Now it is ordered(and sorted, because we give it by sorted order.).
Out[7]: OrderedDict([(datetime.date(2010, 2, 5), 542), (datetime.date(2011, 3, 3), 76), (datetime.date(2012, 1, 1), 123)])