How would I sort this json based off of each id's score value using Python?

Question:

I’m trying to put these ID’s in order based off of each ones score value, highest being on the top and lowest being on the bottom

{
  "Users": {
    "586393728470745123": {
      "score": 150, 
      "name": "user1"
    }, 
    "437465122378874895": {
      "score": 115, 
      "name": "user2"
    }, 
    "904032786854346795": {
      "score": 65, 
      "name": "user3"
    }, 
    "397930609894490122": {
      "score": 810, 
      "name": "user4"
    }, 
    "384814725164433408": {
      "score": 10, 
      "name": "user5"
    }, 
    "337104925387390977": {
      "score": 1, 
      "name": "user6"
    }, 
    "243452651541495808": {
      "score": 10, 
      "name": "user7"}
  }
}

I tried using pythons sorted() function but couldn’t figure it out myself

Asked By: PeeblYweeb

||

Answers:

Well, i don’t know what data structure you want to get, but in Python, dicts do not have no particular order of keys. So, if having a list of user id’s, sorted by their score, try something like this (Scores is the dict you posted):

sorted(list(Scores["Users"]),key= lambda x: Scores["Users"][x]["score"])

Also, notice, that the first id is the one with the lowest score. If you want it the other way round, add reverse = True after the lambda.

Answered By: Ni3dzwi3dz
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.