Python

Hvordan søke etter data i JSON ved hjelp av python

Hvordan søke etter data i JSON ved hjelp av python

En av de mest brukte dataserialiseringsteknikkene er JSON-format. Python har en innebygd modul JSON for å jobbe med JSON-data. Den støtter alle typer primitive datatyper som nummer, streng osv., Sammen med python-objekter. Dataene lagres i et strukturert format i JSON. Noen ganger er det nødvendig å søke i bestemte data fra en stor JSON-streng eller en JSON-fil. Det er mange måter å søke etter spesifikke data fra JSON-data. Hvordan JSON-data kan søkes basert på nøkkel eller verdi ved hjelp av python-skriptet, vises i denne artikkelen.

Eksempel 1: Søketast i enkle JSON-data

Følgende skript viser hvordan du søker om en bestemt nøkkel finnes i en JSON-streng eller ikke. Her heter en variabel kunde Data er definert for å lagre JSON-data. Verdien på nøkkelen blir tatt som input fra brukeren. loads () -metoden til JSON-modulen brukes til å laste JSON-data i variabelen som heter kunde. Neste, 'i' brukes til å søke i nøkkelen.

#!/ usr / bin / env python3
# Importer json-modul
importere json
# Definer json-data
customerData = "" "
"id": "3425678",
"name": "John Micheal",
"email": "[email protected]",
"type": "vanlig",
"adresse": "4258 Poplar Chase Lane, Boise, Idaho."
"" "
# Skriv inn nøkkelverdien du vil søke
keyVal = input ("Skriv inn en nøkkelverdi: \ n")
# last inn json-dataene
kunde = json.belastninger (kundedata)
# Søk nøkkelverdien ved hjelp av 'in' -operatøren
hvis keyVal i kunde:
# Skriv ut suksessmeldingen og verdien av nøkkelen
skriv ut ("% s er funnet i JSON-data"% keyVal)
print ("Verdien av", keyVal, "er", kunde [keyVal])
ellers:
# Skriv ut meldingen hvis verdien ikke eksisterer
skriv ut ("% s finnes ikke i JSON-data"% keyVal)

Produksjon:

Manuset utføres to ganger her. En eksisterende nøkkelverdi blir gitt for første gang, og en ikke-eksisterende nøkkelverdi blir gitt for andre gang.

Eksempel 2: Søk etter en bestemt verdi i JSON-data

Følgende skript viser hvordan du søker etter en bestemt verdi i JSON-data. søkere variabel inneholder JSON-dataene der nøkkelen brukes til å lagre søkerens navn og verdien brukes til å lagre søkeren er til stede eller fraværende. Skriptet vil søke i 'Fraværende' -verdien i JSON-dataene og skrive ut den tilsvarende navnverdien. til loop brukes her itere JSON data.

#!/ usr / bin / env python3
# Importer json-modul
importere json
# Definer json-data
søkere = "" "
"Scott C Aldridge": "Present",
"Joe L Foss": "Present",
"Clyde M Gold": "Present",
"Monique C Doolittle": "Fraværende",
"David M Volkert": "Present",
"Israel M Oneal": "Present",
"Elizabeth M Groff": "Fraværende"
"" "
# Initialiser en teller
teller = 0
# last inn json-dataene
appList = json.belastninger (søkere)
# iterate json for å finne listen over fraværende søker
for nøkkel i appList:
if (appList [key] == 'Fraværende'):
# Sjekk telleren for å skrive ut meldingen
hvis (teller == 0):
utskrift ("Følgende søkere er fraværende:")
skriv ut (nøkkel)
teller = teller + 1
# Skriv ut meldingen hvis ingen søker er fraværende
hvis (teller == 0):
trykk ("Alle søkere er til stede")

Produksjon:

I følge JSON-dataene fra skriptet er to søkere fraværende. Dette vil være den resulterende utgangen etter kjøring av skriptet:

Eksempel 3: Søkeverdi i JSON-arraydata ved hjelp av den egendefinerte funksjonen

I det følgende skriptet heter en JSON-matrise jsondata er definert. En spesiell verdi av en nøkkel vil bli søkt her, og hvis verdien eksisterer, vil verdien til en annen relatert nøkkel bli skrevet ut som utdata. søkepris () funksjonen er definert her ta verdien av Navn nøkkel som det vil bli søkt i JSON-dataene, og den vil skrive ut verdien til den tilsvarende enhetspris nøkkel.

#!/ usr / bin / env python3
# Importer json-modul
importere json
# Definer json-variabel
jsondata = "" "[

"name": "Penn",
"enhetspris": 5
,

"name": "Viskelær",
"enhetspris": 3
,

"name": "Blyant",
"enhetspris": 10
,

"name": "Hvitbok",
"enhetspris": 15

] "" "
# last inn json-dataene
gjenstander = json.belastninger (jsondata)
# Skriv inn varenavnet du vil søke
item = input ("Skriv inn et varenavn: \ n")
# Definer en funksjon for å søke i elementet
def søk_pris (navn):
for keyval i elementer:
hvis navn.lavere () == keyval ['name'].Nedre():
return keyval ['unit_price']
# Kontroller returverdien og utskriftsmeldingen
hvis (søkepris (vare) != Ingen):
print ("Prisen er:", søkepris (vare))
ellers:
utskrift ("Varen er ikke funnet")

Produksjon:

Skriptet kjøres to ganger i denne utgangen. 'blyant' blir tatt som verdien av Navn nøkkelen som finnes i JSON data. De enhetspris av 'blyant' er 10 som er trykt. Neste, 'bok' blir tatt som en inngangsverdi som ikke eksisterer i JSON-dataene.

Eksempel 4: Søketast i nestede JSON-data

Følgende skript viser trinn for å søke etter verdien på en bestemt nøkkel i de nestede JSON-dataene. Her heter en nestet JSON-variabel nestede data er erklært å lagre nestede data. Dette skriptet søker i merkenavnet på kvinneklokken.

#!/ usr / bin / env python3
# Importer json-modul
importere json
# Definer json-variabelen for nestede data
nestedData = "" "
"se":
"menn":
"brand": "Titan",
"pris": 200
,
"kvinner":
"brand": "Citizen",
"pris": 250
,
"gutt":
"brand": "Blancpain",
"pris": 100


"" "
# Last inn json-dataene
overvåkningsliste = json.belastninger (nestede data)
# Søk "merke" for kvinner
hvis 'merke' i overvåkningslisten ['se'] ['kvinner']:
skriv ut (overvåkningsliste ['watch'] ['women'] ['brand'])

Produksjon:

I skriptet ovenfor er det bare en merkevareverdi for kvinneklokker som er 'Borger'. Følgende blir resultatet etter at du har kjørt skriptet.

Eksempel 5: Søk oppføring fra en JSON-fil ved hjelp av filtermetode og lambda

De følgende trinnene viser hvordan du kan søke i oppføringen fra en JSON-fil basert på en bestemt nøkkel og verdier. Innholdet i bøker.json filen er gitt nedenfor.

bøker.json

[

"isbn": "7799349885",
"name": "Essentials of Vehicle Dynamics",
"author": "Joop P. Pauwelussen "
,

"isbn": "7799349885",
"name": "Strømning og forbrenning i stempelmotorer",
"author": "C. Arcoumanis og T. Kamimoto "
,

"isbn": "7799349885",
"name": "Interaksjon med biler Ergonomics Driver Vehicle Interaction",
"author": "Nikolaos Gkikas"

]

Følgende skript vil søke i oppføringen fra bøker.json fil, hvor verdien av forfatteren nøkkelen er Nikolaos Gkikas ved hjelp av lambda og filter() metode.

#!/ usr / bin / env python3
# Importer JSON-modul
importere json
# Åpne den eksisterende JSON-filen for innlasting i en variabel
med åpne ('bøker.json ') som jsondata:
data = json.belastning (jsondata)
# Søk data basert på nøkkel og verdi ved hjelp av filter og listemetode
skriv ut (liste (filter (lambda x: x ["author"] == "Nikolaos Gkikas", data)))

Produksjon:

Følgende utdata vises etter kjøring av skriptet.

Konklusjon:

Når vi arbeider med en stor mengde JSON-data og trenger å finne ut spesifikk informasjon fra dataene, må vi bruke effektive måter å gjøre oppgaven på. Forskjellige måter å søke på nøkkel og verdi i JSON-data er forklart i denne artikkelen for å hjelpe pythonbrukere med å utføre prosessen.

Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...
Nyttige verktøy for Linux-spillere
Hvis du liker å spille spill på Linux, er sjansen stor for at du har brukt apper og verktøy som Wine, Lutris og OBS Studio for å forbedre spilloppleve...
HD Remastered Games for Linux som aldri hadde en Linux-utgave tidligere
Mange spillutviklere og utgivere kommer med HD-remaster av gamle spill for å forlenge franchisetiden, vennligst fans som ber om kompatibilitet med mod...