Python | Ordenar JSON por valor

Veamos las diferentes formas de ordenar los datos JSON usando Python.

¿Qué es JSON?
JSON (Notación de objetos de JavaScript) es un formato de intercambio de datos independiente del idioma, basado en texto y liviano que es fácil de leer y escribir para humanos y máquinas. JSON puede representar dos tipos estructurados: objetos y arrays. Un objeto es una colección desordenada de cero o más pares de nombre/valor. Una array es una secuencia ordenada de cero o más valores. Los valores pueden ser strings, números, booleanos, nulos y estos dos tipos estructurados.

La tarea es ordenar el JSON primero por código , luego por grado y luego por número de inscripción .

Código #1: Clasificación en orden Desc

# Python code to demonstrate sorting in JSON.
import json
  
data='''{  
   "Student":[  
      {  
         "enrollment_no":"9915103000",
         "name":"JIIT",
         "subject":[  
            {  
               "code":"DBMS",
               "grade":"C"
            }
         ]
      },
      {  
         "enrollment_no":"8815103057",
         "name":"JSS",
         "subject":[  
            {  
               "code":"COA",
               "grade":"A"
            },
            {  
               "code":"CN",
               "grade":"A+"
            }
         ]
      }
   ]
}'''
  
# Parsing Json object
json_parse = json.loads(data)
   
# iterating 
for it in json_parse['Student']:
    for y in it['subject']:
        print(y['code'],y['grade'],it['enrollment_no'],it['name'])

Producción :

DBMS C 9915103000 JIIT
COA A 8815103057 JSS
CN A+ 8815103057 JSS

 
Código n. ° 2: mediante el uso de una biblioteca externa como Pandas (clasificación en orden ascendente).

from pandas.io.json import json_normalize
  
df = json_normalize(json_parse['Student'],
                               'subject', 
                    ['enrollment_no', 'name'])
  
df.sort_values(['code', 'grade', 'enrollment_no']).reset_index(drop=True)

Producción:

  code grade  enrollment_no      name
0  CN     A+  8815103057         JSS
1  COA    A  8815103057         JSS
2  DBMS   C  9915103000        JIIT

Publicación traducida automáticamente

Artículo escrito por everythingispossible y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *