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 dataserialiseringsteknikken er JSON -format. Python har en innebygd modul JSON for å jobbe med JSON-data. Den støtter alle typer primitive datatyper som nummer, streng, etc, sammen med Python -objekter. Dataene lagres i et strukturert format i JSON. Noen ganger kreves det å søke i en bestemt 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 bruk av Python -skriptet vises i denne artikkelen.

Eksempel-1: Søk nøkkel i enkle JSON-data

Følgende skript viser hvordan du søker hvis det finnes en bestemt tast i en JSON -streng eller ikke. Her, en variabel som heter kunde Data er definert for å lagre JSON -dataene. Verdien av nøkkelen vil bli tatt som input fra brukeren. Loads () Metode for JSON -modul brukes til å laste inn JSON -data i den navngitte variabelen kunde. NESTE, 'i' Operatør brukes til å søke på nøkkelen.

#!/usr/bin/env python3
# Importer JSON -modul
Importer JSON
# Definer JSON -data
customerdata = "" "
"Id": "3425678",
"Navn": "John Micheal",
"E -post": "[email protected] ",
"Type": "Vanlig",
"Adresse": "4258 Poplar Chase Lane, Boise, Idaho.""
"" "
# Skriv inn nøkkelverdien du vil søke
KeyVal = input ("Angi en nøkkelverdi: \ n")
# Last inn JSON -dataene
Kunde = JSON.Loads (CustomerData)
# Søk i nøkkelverdien ved å bruke 'i' operatør
Hvis KeyVal i kunde:
# Skriv ut suksessmeldingen og verdien av nøkkelen
Print (" %S finnes i JSON Data" %KeyVal)
Print ("Verdien av", KeyVal, "er", kunde [KeyVal])
ellers:
# Skriv ut meldingen hvis verdien ikke eksisterer
Print (" %S finnes ikke i JSON Data" %KeyVal)

Produksjon:

Skriptet utføres to ganger her. Det gis en eksisterende nøkkelverdi for første gang og en ikke-eksisterende nøkkelverdi gis for andre gang.

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

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

#!/usr/bin/env python3
# Importer JSON -modul
Importer 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.Laster (søkere)
# iterate json for å finne listen over fraværende søker
for nøkkel i applist:
if (applist [tast] == ​​'fraværende'):
# Kontroller telleren. Skriv ut meldingen
if (counter == 0):
trykk ("Følgende søkere er fraværende:")
trykk (tast)
teller = teller + 1
# Skriv ut meldingen hvis ingen søker er fraværende
if (counter == 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 å ha kjørt skriptet:

Eksempel-3: Søkeverdi i JSON Array Data ved hjelp av tilpasset funksjon

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

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

"Navn": "Pen",
"UNIT_PRICE": 5
,

"Navn": "Eraser",
"UNIT_PRICE": 3
,

"Navn": "blyant",
"UNIT_PRICE": 10
,

"Navn": "White Paper",
"Unit_Price": 15

] "" "
# Last inn JSON -dataene
Elementer = JSON.Loads (Jsondata)
# Skriv inn varenavnet du vil søke
element = input ("Skriv inn et elementnavn: \ n")
# Definer en funksjon for å søke i varen
def search_price (navn):
For KeyVal i elementer:
Hvis navn.Nedre () == KeyVal ['Navn'].Nedre():
Returner KeyVal ['UNIT_PRICE']
# Kontroller returverdien og utskriftsmeldingen
if (search_price (element) != Ingen):
print ("Prisen er:", search_price (vare))
ellers:
Print ("Elementet er ikke funnet")

Produksjon:

Skriptet utføres to ganger i denne utgangen. 'blyant' blir tatt som verdien av Navn nøkkel som eksisterer 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øk nøkkel i nestede JSON-data

Følgende skript viser trinn på å søke på verdien av en bestemt nøkkel i de nestede JSON -dataene. Her heter en nestet JSON -variabel Nesteddata er erklært å lagre nestede data. Dette skriptet vil søke på merkenavnet til kvinnene som ser på.

#!/usr/bin/env python3
# Importer JSON -modul
Importer JSON
# Definer JSON -variabel av nestede data
nesteddata = "" "
"se":
"Menn":
"Brand": "Titan",
"Pris": 200
,
"Kvinner":
"Brand": "Citizen",
"Pris": 250
,
"Kid":
"Brand": "Blancpain",
"Pris": 100


"" "
# Last inn JSON -dataene
WatchList = JSON.Loads (NestedData)
# Søk 'merke' for kvinner
Hvis 'merkevare' i vaktliste ['se'] ['kvinner']:
trykk (Watchlist ['Watch'] ['Women'] ['Brand'])

Produksjon:

I skriptet ovenfor er det bare en merkeverdi for kvinner som er 'Borger'. Følgende vil være utgangen etter å ha kjørt skriptet.

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

Følgende trinn viser hvordan du kan søke på 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",
"Navn": "Essentials of Vehicle Dynamics",
"Forfatter": "Joop P. Pauwelussen "
,

"ISBN": "7799349885",
"Navn": "Flyt og forbrenning i gjengjeldende motorer",
"Forfatter": "C. Arcoumanis og T. Kamimoto "
,

"ISBN": "7799349885",
"Navn": "Automotive Ergonomics Driver Vehicle Interaction",
"Forfatter": "Nikolaos Gkikas"

]

Følgende skript vil søke på 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
Importer JSON
# Åpne den eksisterende JSON -filen for lasting i en variabel
med åpne ('bøker.Json ') som Jsondata:
data = json.Last (Jsondata)
# Søkedata basert på nøkkel og verdi ved bruk av filter- og listemetode
Print (List (Filter (Lambda X: X ["Forfatter"] == "Nikolaos Gkikas", data)))

Produksjon:

Følgende utgang vises etter å ha kjørt skriptet.

Konklusjon:

Når vi jobber med en stor mengde JSON -data og trenger å finne ut den spesifikke informasjonen fra dataene med letthet, må vi bruke effektive måter å gjøre oppgaven. Ulike måter å søke på nøkkel og verdi i JSON -data blir forklart i denne artikkelen for å hjelpe Python -brukere til å utføre prosessen med hell.