Mottly24
Mottly24

Reputation: 25

How can I sort my JSON file by nested value?

So I have a JSON file that looks like this:

{
  "PlayerA": {
    "val": 200,
    "level": 1
  },
  "PlayerB": {
    "val": 1000,
    "level": 1
  },
  "PlayerC": {
    "val": 30,
    "level": 1
  }
}

And I want it to be sorted by "val," so that it looks like this:

{
  "PlayerB": {
    "val": 1000,
    "level": 1
  },
  "PlayerA": {
    "val": 200,
    "level": 1
  },
  "PlayerC": {
    "val": 30,
    "level": 1
  }
}

How would I go about doing this?

Upvotes: 0

Views: 150

Answers (1)

MisterNox
MisterNox

Reputation: 1455

Try this:

data = {
  "PlayerA": {
    "val": 200,
    "level": 1
  },
  "PlayerB": {
    "val": 1000,
    "level": 1
  },
  "PlayerC": {
    "val": 30,
    "level": 1
  }
}

data = sorted(data.items(), key=lambda x: x[1]["val"], reverse=True)

print(data)
# [('PlayerB', {'val': 1000, 'level': 1}), ('PlayerA', {'val': 200, 'level': 1}), ('PlayerC', {'val': 30, 'level': 1})]

Upvotes: 1

Related Questions