Djangoでdictをkeyでソートする

dict(辞書オブジェクト)でkeyソートされてなくて困ったので、解決した時に結果を残します。
調べた下記の方法でdict(辞書オブジェクト)でkeyソートされるようになった。

$ ipython 
Python 2.7.1 (r271:86832, Jun 16 2011, 16:59:05)
Type "copyright", "credits" or "license" for more information.
IPython 1.1.0 -- An enhanced Interactive Python.
? -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help -> Python's own help system.
object? -> Details about 'object', use 'object??' for extra details.
In [1]: from django.utils.datastructures import SortedDict
In [2]: sort_dict = {'2013-10':'on', '2013-11': 'off','2013-12': 'on'}
In [3]: print(sort_dict)
{'2013-12': 'on', '2013-11': 'off', '2013-10': 'on'}
In [4]: sort_data = SortedDict(sort_dict)
In [5]: sort_data.keyOrder.sort()
In [6]: print(sort_data)
{'2013-10': 'on', '2013-11': 'off', '2013-12': 'on'}

Djangoのfrom django.utils.datastructures import SortedDictを使えば、dictをkeyでソートできました。無事に解決できました。

dictには、順序がないみたいです。sortedで使えなかったのでSortedDictでなくとかなりました。

keyでソートしない場合。

2013-12 on 2013-11 off 2013-10 on

keyでソートした場合

2013-10 on 2013-11 off 2013-12 on


Djangoって案外検索しても海外のサイトばっかりなので、日本ではあんまり使われてないフレームワークなんだろうか。そんなことはないと思うが。

pythonで調べてるのに、Haskellで乗ってるのなんでだろう。
pythonを書いてる人がHaskellに流れてるのだろうか。python→Haskellの流れは自然なんだろうか。