辞書型の要素内の辞書型の要素でソート

メモしておく

data = {
    'a' : {
        'name' : 'anna',
        'age' : 17
    },
    'b' : {
        'name' : 'beck',
        'age' : 15
    },
    'c' : {
        'name' : 'cherry',
        'age' : 20
    },
    'd' : {
        'name' : 'detteiu',
        'age' : 31
    }
}

# (1) age の昇順ソートしたい
result = sorted(data.items(), key=lambda x:int(x[1]['age']), reverse=False)

# (2) age の降順ソートしたい
result = sorted(data.items(), key=lambda x:int(x[1]['age']), reverse=True)

(1)の結果

[
    ["b", {"age": 15, "name": "beck"}], 
    ["a", {"age": 17, "name": "anna"}], 
    ["c", {"age": 20, "name": "cherry"}], 
    ["d", {"age": 31, "name": "detteiu"}]
]

(2)の結果

[
    ["d", {"age": 31, "name": "detteiu"}], 
    ["c", {"age": 20, "name": "cherry"}], 
    ["a", {"age": 17, "name": "anna"}], 
    ["b", {"age": 15, "name": "beck"}]
]