Hvordan sortere JSON -objekter i Python

Hvordan sortere JSON -objekter i Python
JSON -filen er et veldig populært medium for å utveksle data mellom forskjellige typer programmeringsspråk. Det er et språkuavhengig tekstbasert filformat som lagrer data ved å bruke en matrise og objekt. Den kan lagre tall, strenger, boolsk og en annen matrise eller objekt som innhold. JSON-objektet kan sorteres ved å bruke innebygde Python-funksjoner, moduler og brukerdefinerte funksjoner. Ulike måter å sortere JSON -objektet i Python har blitt forklart i denne opplæringen.

Eksempel-1: Sorter JSON-objekt ved hjelp av JSON.dumper()

Ved hjelp av JSON.dumper() Funksjon er en måte å sortere JSON -objektet på. Det brukes til å konvertere utvalget av JSON -objekter til et sortert JSON -objekt. Verdien av sort_keys -argumentet til Dumps () -funksjonen vil kreve å stille til å generere sorterte JSON -objekter fra utvalget av JSON -objekter. Lag en Python -fil med følgende skript sorter JSON -objektene ved hjelp av JSON.Dumps () -funksjon. Både de originale og sorterte JSON -objektene vil bli skrevet ut etter å ha utført skriptet.

# Importer JSON -modulen
Importer JSON
# Array av JSON -objekter
Products = ["Name": "HDD", "Brand": "Samsung", "Price": 100,
"Navn": "Monitor", "Brand": "Dell", "Pris": 120,
"Navn": "Mus", "merke": "logitech", "pris": 10]
# Les og skriv ut de originale dataene
print ("De originale dataene: \ n 0".Format (produkter))
# Konvertere til json -objektet etter sortering
sorted_json_data = json.Dumps (produkter, sort_keys = true)
# Skriv ut de sorterte JSON -dataene
print ("de sorterte JSON -dataene basert på nøklene: \ n 0".Format (sorted_json_data))

Produksjon:

Følgende utgang vises etter å ha utført skriptet. Hvert JSON-objekt inneholder tre nøkkelverdipar i JSON-arrayen. Verdiene til objektene har sortert basert på nøklene i utgangen. I henhold til nøkkelverdien har merkevaren nøkkel dukket opp først, og prisnøkkelen dukket opp sist basert på sorteringen.

Eksempel-2: Sorter JSON-objekt ved hjelp av Lambda

Å bruke lambda i sort () -funksjonen er en annen måte å sortere JSON -objekter. Lag Python -filen med følgende skript for å sortere JSON -objekter ved hjelp av sort () og lambda -funksjonen. Den spesielle tasten eller nøklene kan nevnes for sortering når lambda brukes til sortering. I det følgende skriptet har det samme utvalget av JSON -objekter brukt som ble brukt i forrige eksempel. Tre nøkler finnes i JSON -objektene. Dette er navn, merke og pris. "Brand" -tasten har nevnt i den typen () for sorteringsnøkkelen. Så JSON -objektene vil bli sortert basert på verdiene til "merke" -tasten. Både de opprinnelige verdiene og de sorterte verdiene vil bli skrevet ut som utgang.

# Array av JSON -objekter
Produkter = ["Navn": "HDD", "merke": "Samsung", "Pris": "$ 100",
"Navn": "Monitor", "Brand": "Dell", "Pris": "$ 120",
"Navn": "Mouse", "Brand": "Logitech", "Pris": "$ 10"]
# Skriv ut de originale dataene
print ("De originale JSON -dataene: \ n 0".Format (produkter))
# Sorter JSON -dataene basert på verdien av merkevarenesnøkkelen
Produkter.Sorter (nøkkel = lambda x: x ["merke"])
# Skriv ut de sorterte JSON -dataene
print ("de sorterte JSON -dataene basert på verdien av merkevaren: \ n 0".Format (produkter))

Produksjon:

Følgende utgang vises etter å ha utført skriptet. Tre merkeverdier definert i skriptet er Samsung, Dell og Logitech. Etter sortering, objektet som inneholder produktet av 'Dell'Brand har dukket opp først, og objektet som inneholder'Samsung'Brand har dukket opp sist i utdataene.

Eksempel-3: Sorter JSON-objekt ved hjelp av sortert funksjon

Lag en Python -fil med følgende skript for å sortere JSON -objektene ved å bruke Pprint modul og sortert () funksjon. De Pprint Modulen importeres til skriptet for å bruke Pprint () -funksjonen for å formatere JSON -utgangen. En rekke fire JSON -objekter er blitt erklært i skriptet. Hvert objekt inneholder tre nøkkelverdipar. Nøklene er Navn, post, og e -post. En brukerdefinert funksjon som heter sort_by_key () er erklært å sortere JSON -objektene basert på verdien av 'Navn'Nøkkel. Denne funksjonen kalles i sortert () funksjon ved å bruke argumentet som heter nøkkel. Etter å ha utført sortert () Funksjon, JSON -objektene vil bli skrevet ut ved å sortere objektene basert på verdiene til navnetasten.

# Importer pprint -modul
Importer pprint
# Array av JSON -objekter
ansatt_list = [

'Navn': 'Firoz Shah',
'POST': 'HR',
'E -post': 'regnskapsfører'
,

'Navn': 'Aiyan Hasan',
'Post': 'Salg',
'E -post': 'Manager'
,

'Navn': 'Mahmuda Feroz',
'POST': 'Markedsføring',
'E -post': 'CEO'
]
# Skriv ut den originale JSON -listen
Skriv ut ("Array of JSON -objekter før sortering:")
Pprint.pprint (ansatt_list)
# Erklære funksjon for å returnere de sorterte dataene basert på navn
def sort_by_key (liste):
Returliste ['Navn']
# Skriv ut den sorterte JSON -listen basert på navnetasten
trykk ("\ Narray of JSON -objekter etter sortering:")
Pprint.pprint (sortert (ansatt_list, nøkkel = sort_by_key))

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Tre verdier av navnetasten definert i skriptet er 'Firoz Shah', 'Aiyan Hasan' og 'Mahmuda Feroz'. Etter sortering har JSON -objektet som inneholder 'Aiyan Hasan' i Name -tasten dukket opp først, og JSON -objektet som inneholder Mahmuda Feroz 'i Navn -tasten har dukket opp sist i utgangen.

Eksempel-4: Sorter JSON-objekter i synkende rekkefølge

JSON -objektene har sortert i stigende rekkefølge i de tre foregående eksemplene. Måten å sortere JSON -objektet i synkende rekkefølge basert på en bestemt nøkkelverdi har vist i dette eksemplet. Lag en Python -fil med følgende skript som sorterer JSON -objektene i synkende rekkefølge basert på verdien av prisnøkkelen.

Importer pprint
# Array av JSON -objekter
Produkter = ["Navn": "HDD", "merke": "Samsung", "Pris": "$ 100",
"Navn": "Monitor", "Brand": "Dell", "Pris": "$ 120",
"Navn": "Mouse", "Brand": "Logitech", "Pris": "$ 10"]
""
Skriv ut de sorterte JSON -objektene i synkende rekkefølge
basert på prisnøkkelverdien
""
trykk ("\ Narray of JSON -objekter etter sortering:")
Produkter = sortert (produkter, nøkkel = lambda k: k ['pris'], revers = true)
Pprint.Pprint ((produkter))

Produksjon:

Følgende utgang vises etter å ha utført skriptet ovenfor. Etter å ha sortert JSON -objektene, har objektet som inneholder den høyeste prisverdien dukket opp først, og objektet som inneholder den laveste prisverdien har dukket opp sist i produksjonen.

Konklusjon:

Fire forskjellige måter å sortere JSON -objektene har blitt vist i denne opplæringen ved å bruke forskjellige eksempler på. Sorteringen (), sorterte () og dumpene () har blitt brukt her for å sortere JSON -objektet i stigende og synkende rekkefølge.