Use x[1]["number"] in your lambda
n [40]: d
Out[40]:
{'b': {'description': 'second letter', 'number': 2},
 'a': {'description': 'first letter', 'number': 1},
 'c': {'description': 'third letter', 'number': 3}}
In [41]: sorted(d.items(), key=lambda x:x[1]["number"])
Out[41]:
[('a', {'description': 'first letter', 'number': 1}),
 ('b', {'description': 'second letter', 'number': 2}),
 ('c', {'description': 'third letter', 'number': 3})]
1
solved Sorting a dictionary where values are also dictionaries?