Как отсортировать OrderedDict of OrderDict – Python

Я пытаюсь сортировать OrderedDict в OrderedDict с помощью клавиши «depth» . Есть ли решение для сортировки этого Словаря?

OrderedDict([ (2, OrderedDict([ ('depth', 0), ('height', 51), ('width', 51), ('id', 100) ])), (1, OrderedDict([ ('depth', 2), ('height', 51), ('width', 51), ('id', 55) ])), (0, OrderedDict([ ('depth', 1), ('height', 51), ('width', 51), ('id', 48) ])), ]) 

Сортировка dict должна выглядеть так:

 OrderedDict([ (2, OrderedDict([ ('depth', 0), ('height', 51), ('width', 51), ('id', 100) ])), (0, OrderedDict([ ('depth', 1), ('height', 51), ('width', 51), ('id', 48) ])), (1, OrderedDict([ ('depth', 2), ('height', 51), ('width', 51), ('id', 55) ])), ]) 

любая идея, как ее получить?

    Вам нужно будет создать новый, так как OrderedDict будет отсортирован по порядку вставки.

    В вашем случае код будет выглядеть так:

     foo = OrderedDict(sorted(foo.iteritems(), key=lambda x: x[1]['depth'])) 

    Дополнительную информацию см. На странице http://docs.python.org/dev/library/collections.html#ordereddict-examples-and-recipes .

     >>> OrderedDict(sorted(od.items(), key=lambda item: item[1]['depth']))