-2

I would like to sort a dictionary based on the score value contained in each dictionary value

here's my dictionary:

{
    "name1": {
        "score": "50",
        "username": "name1"
    },
    "name2": {
        "score": "35",
        "username": "name2"
    },
    "name3": {
        "score": "11",
        "username": "name3"
    },
    "name4": {
        "score": "6326",
        "username": "name4"
    },
    "name5": {
        "score": "6274",
        "username": "name5"
    }
}

I would like the result to be in descending order like a game leaderboard

ThePyGuy
  • 17,779
  • 5
  • 18
  • 45
Lyar
  • 27
  • 3
  • Welcome to SO! Please take a look at ["How to ask a good question"](https://stackoverflow.com/help/how-to-ask). – rawrex Jun 28 '21 at 09:57

1 Answers1

0

You can pass use sorted builtin and pass lambda function to key parameter:

>>> dict(sorted(data.items(), key=lambda x: x[1]['score']))

{'name3': {'score': '11', 'username': 'name3'}, 'name2': {'score': '35', 'username': 'name2'}, 'name1': {'score': '50', 'username': 'name1'}, 'name5': {'score': '6274', 'username': 'name5'}, 'name4': {'score': '6326', 'username': 'name4'}}
ThePyGuy
  • 17,779
  • 5
  • 18
  • 45