Python

Kako iskati podatke v JSON z uporabo pythona

Kako iskati podatke v JSON z uporabo pythona

Ena najpogosteje uporabljenih tehnik serializacije podatkov je format JSON. Python ima vgrajen modul JSON za delo s podatki JSON. Podpira vse vrste primitivnih podatkovnih tipov, kot so število, niz itd., Skupaj s predmeti python. Podatki so shranjeni v strukturirani obliki v obliki JSON. Včasih je treba iskati po določenih podatkih iz velikega niza JSON ali datoteke JSON. Obstaja veliko načinov za iskanje določenih podatkov iz podatkov JSON. V tem članku je prikazano, kako lahko podatke JSON iščemo na podlagi ključa ali vrednosti s pomočjo skripta python.

Primer-1: Iskalni ključ v preprostih podatkih JSON

Naslednji skript prikazuje, kako iskati, če določen ključ obstaja v nizu JSON ali ne. Tukaj je spremenljivka z imenom customerData je definiran za shranjevanje podatkov JSON. Vrednost ključa bo uporabljena kot vnos uporabnika. load () metoda modula JSON se uporablja za nalaganje podatkov JSON v imenovani spremenljivki stranko. Naslednji, 'noter' za iskanje ključa.

#!/ usr / bin / env python3
# Uvozi json modul
uvoz json
# Določite json podatke
customerData = "" "
"id": "3425678",
"name": "John Micheal",
"email": "[e-pošta zaščitena]",
"type": "redno",
"address": "4258 Poplar Chase Lane, Boise, Idaho."
"" "
# Vnesite vrednost ključa, ki jo želite iskati
keyVal = input ("Vnesite vrednost ključa: \ n")
# naloži podatke json
kupec = json.obremenitve (customerData)
# Poiščite vrednost ključa z operatorjem 'in'
če je keyVal v stranki:
# Natisnite sporočilo o uspehu in vrednost ključa
tiskanje ("% s najdemo v podatkih JSON"% keyVal)
print ("Vrednost", keyVal, "je", kupec [keyVal])
sicer:
# Natisnite sporočilo, če vrednost ne obstaja
print ("% s ni mogoče najti v podatkih JSON"% keyVal)

Izhod:

Tu se skript izvede dvakrat. Obstoječa vrednost ključa je podana prvič, neobstoječa vrednost ključa pa drugič.

Primer-2: Iskanje določene vrednosti v podatkih JSON

Naslednji skript prikazuje, kako iskati določeno vrednost v podatkih JSON. prosilci spremenljivka vsebuje podatke JSON, kjer se ključ uporablja za shranjevanje imena vlagatelja, vrednost pa za shranjevanje prijavitelja, ki je prisoten ali odsoten. Skript bo poiskal vrednost 'Odsotna' v podatkih JSON in natisnil ustrezno vrednost imena. za zanka se tukaj uporablja ponovitev podatkov JSON.

#!/ usr / bin / env python3
# Uvozi json modul
uvoz json
# Določite json podatke
prosilci = "" "
"Scott C Aldridge": "Sedanjost",
"Joe L Foss": "Present",
"Clyde M Gold": "Present",
"Monique C Doolittle": "Odsoten",
"David M Volkert": "Sedanjost",
"Israel M Oneal": "Sedanjost",
"Elizabeth M Groff": "Odsotna"
"" "
# Inicializirajte števec
števec = 0
# naloži podatke json
appList = json.obremenitve (prosilci)
# iterate json, da poiščete seznam odsotnih prosilcev
za ključ v seznamu aplikacij:
if (appList [key] == 'Odsoten'):
# Preverite števec natisnite sporočilo
če (števec == 0):
print ("Naslednji prijavitelji so odsotni:")
tiskanje (ključ)
števec = števec + 1
# Natisnite sporočilo, če ni nobenega prosilca
če (števec == 0):
print ("Prisotni so vsi prosilci")

Izhod:

Po podatkih JSON iz scenarija sta dva prosilca odsotna. To bo rezultat, ki bo izšel po zagonu skripta:

Primer-3: Iskanje vrednosti v podatkih matrike JSON z uporabo funkcije po meri

V naslednjem skriptu je poimenovana matrika JSON jsondata je opredeljeno. Tu bo poiskana določena vrednost ključa in če vrednost obstaja, bo vrednost drugega povezanega ključa natisnjena kot izhodna vrednost. search_price () funkcija je definirana tukaj, vzemite vrednost ime ključ, ki ga bomo iskali v podatkih JSON in bo natisnil vrednost ustreznega cena na enoto tipko.

#!/ usr / bin / env python3
# Uvozi json modul
uvoz json
# Določite spremenljivko json
jsondata = "" "[

"name": "Pero",
"enota_cena": 5
,

"name": "Radirka",
"cena_ enote": 3
,

"name": "Svinčnik",
"enota_cena": 10
,

"name": "Bela knjiga",
"enota_cena": 15

] "" "
# naloži podatke json
items = json.obremenitve (jsondata)
# Vnesite ime elementa, ki ga želite iskati
item = input ("Vnesite ime elementa: \ n")
# Določite funkcijo za iskanje elementa
def search_price (ime):
za keyval v predmetih:
če ime.nižje () == keyval ['ime'].spodnja ():
vrni keyval ['unit_price']
# Preverite vrnjeno vrednost in natisnite sporočilo
if (search_price (item) != Brez):
print ("Cena je:", search_price (item))
sicer:
print ("Elementa ni mogoče najti")

Izhod:

V tem izhodu se skript izvede dvakrat. "svinčnik ' se vzame za vrednost ime ključ, ki obstaja v JSON podatkov. The cena na enoto od 'svinčnik' je 10 ki je natisnjen. Naslednji, 'knjiga' je vzeta kot vhodna vrednost, ki ne obstaja v podatkih JSON.

Primer 4: Iskalni ključ v ugnezdenih podatkih JSON

Naslednji skript prikazuje korake za iskanje vrednosti določenega ključa v ugnezdenih podatkih JSON. Tu je ugnezdena spremenljivka JSON z imenom nestedData je razglašeno za shranjevanje ugnezdenih podatkov. Ta skript bo iskal blagovno znamko ženske ure.

#!/ usr / bin / env python3
# Uvozi json modul
uvoz json
# Določite spremenljivko json ugnezdenih podatkov
nestedData = "" "
"watch":
"moški":
"brand": "Titan",
"cena": 200
,
"ženske":
"brand": "Citizen",
"cena": 250
,
"otrok":
"brand": "Blancpain",
"cena": 100


"" "
# Naložite podatke json
seznam za spremljanje = json.obremenitve (nestedData)
# Poiščite "blagovno znamko" za ženske
če je "blagovna znamka" na seznamu za spremljanje ['watch'] ['women']:
tiskanje (seznam za spremljanje ['watch'] ['women'] ['brand'])

Izhod:

V zgornjem scenariju obstaja samo ena vrednost blagovne znamke za ženske ure, ki je "Državljan". Po zagonu skripta bo rezultat naslednji.

Primer 5: Iskanje vnosa iz datoteke JSON z uporabo metode filtra in lambda

Naslednji koraki prikazujejo, kako lahko iščete vnos iz datoteke JSON na podlagi določenega ključa in vrednosti. Vsebina knjige.json datoteka je navedena spodaj.

knjige.json

[

"isbn": "7799349885",
"name": "Osnove dinamike vozil",
"avtor": "Joop P. Pauwelussen "
,

"isbn": "7799349885",
"name": "Pretok in zgorevanje v batnih motorjih",
"avtor": "C. Arcoumanis in T. Kamimoto "
,

"isbn": "7799349885",
"name": "Interakcija voznika z avtomobilsko ergonomijo",
"avtor": "Nikolaos Gkikas"

]

Naslednji skript bo iskal vnos iz knjige.json datoteka, kjer je vrednost Avtor ključ je Nikolaos Gkikas uporabo lambda in filter () metoda.

#!/ usr / bin / env python3
# Uvozi modul JSON
uvoz json
# Odprite obstoječo datoteko JSON za nalaganje v spremenljivko
z odprtimi ('knjige.json ') kot jsondata:
podatki = json.obremenitev (jsondata)
# Iskanje podatkov na podlagi ključa in vrednosti z uporabo filtra in seznama
tisk (seznam (filter (lambda x: x ["avtor"] == "Nikolaos Gkikas", podatki)))

Izhod:

Po zagonu skripta se prikaže naslednji izhod.

Zaključek:

Ko delamo z veliko količino podatkov JSON in moramo z lahkoto ugotoviti določene podatke iz podatkov, moramo za nalogo uporabiti učinkovite načine. V tem članku so razloženi različni načini iskanja ključa in vrednosti v podatkih JSON, ki uporabnikom pythona pomagajo, da uspešno izvedejo postopek.

Najboljše igre z ročnim sledenjem
Oculus Quest je pred kratkim predstavil odlično idejo ročnega sledenja brez krmilnikov. Z vedno večjim številom iger in dejavnosti, ki izvajajo podpor...
Kako prikazati prekrivanje zaslonskega menija v celozaslonskih aplikacijah in igrah za Linux
Igranje celozaslonskih iger ali uporaba aplikacij v celozaslonskem načinu brez motenj vam lahko odreže ustrezne sistemske informacije, ki so vidne na ...
Top 5 kartic za zajemanje iger
Vsi smo v YouTubu videli in oboževali pretakanje iger. PewDiePie, Jakesepticye in Markiplier so le nekateri izmed najboljših igralcev, ki so zaslužili...