1

I am trying to sort a dictionary with another dictionary inside. This is how my dict looks like:

{'POS2': {'stegano': 0, 'sum': 200, 'misc': 100, 'web': 0, 'ppc': 0, 'crypto': 0, 'admin': 0, 'vuln': 0, 'forensics': 0, 'hardware': 0, 'reverse': 0, 'recon': 100}, ...}

I want to sort it by 'sum' key that is stored in nested dict. I have tried different solutions like here Sort nested dictionary by value, and remainder by another value, in Python and here sorting a nested dictionary with lists in python but they all work fine on python 2.x but doesn't work on python 3.x. Could you give me advice how to implement this kind of sort ?

Community
  • 1
  • 1
Danil Mironov
  • 179
  • 1
  • 4
  • 12
  • You linked to the same question twice. The accepted answer there *works just fine* for Python 3. What error do you see? – Martijn Pieters Mar 24 '14 at 10:57
  • 1
    @MartijnPieters Pieters It's also works only on python 2.x. On 3.3.4 it says "TypeError: 'dict_values' object does not support indexing" – Danil Mironov Mar 24 '14 at 11:05
  • The **other** post has the same answer as I posted below though, so this **is** a dupe of [Sort nested dictionary by value, and remainder by another value, in Python](http://stackoverflow.com/q/4110665) – Martijn Pieters Mar 24 '14 at 11:05

1 Answers1

6

Simply return the desired sort key from each item

sorted(inputdict.items(), key=lambda item: item[1]['sum'])
Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343