Üks enimkasutatavaid andmete järjestamise tehnika on JSON-vorming. Pythonil on JSON-andmetega töötamiseks sisseehitatud moodul JSON. See toetab igat tüüpi primitiivseid andmetüüpe nagu number, string jne koos pythoni objektidega. Andmed salvestatakse struktureeritud vormingus JSON-is. Mõnikord on vaja otsida konkreetseid andmeid suurest JSON-stringist või JSON-failist. JSON-i andmetest konkreetsete andmete otsimiseks on palju võimalusi. Kuidas JSON-i andmeid saab võtme või väärtuse põhjal otsida, kasutades pythoni skripti, on näidatud selles artiklis.
Näide 1: otsinguklahv lihtsates JSON-andmetes
Järgmine skript näitab, kuidas otsida, kas JSON-stringis on kindel võti olemas või mitte. Siin muutuja nimega customerData on määratletud JSON-i andmete salvestamiseks. Kasutaja sisendiks võetakse võtme väärtus. nimega muutuja JSON-i andmete laadimiseks kasutatakse JSON-mooduli laadimismeetodit () klient. Järgmine, "sisse" operaatorit kasutatakse võtme otsimiseks.
#!/ usr / bin / env python3# Import jsoni moodul
import json
# Määrake Jsoni andmed
klientData = "" "
"id": "3425678",
"nimi": "John Micheal",
"email": "[email kaitstud]",
"tüüp": "tavaline",
"aadress": "4258 Poplar Chase Lane, Boise, Idaho."
""
# Sisestage võtmeväärtus, mida soovite otsida
keyVal = input ("Sisestage võtme väärtus: \ n")
# laadige jsoni andmed
klient = json.laadib (customerData)
# Otsige võtmeväärtust operaatori 'in' abil
kui keyVal kliendis:
# Trükkige edusõnum ja võtme väärtus
print ("% s on leitud JSON-i andmetest"% keyVal)
print ("Väärtus", keyVal, "on", klient [keyVal])
muu:
# Printige teade, kui väärtust pole olemas
print ("% s ei leitud JSON-i andmetest"% keyVal)
Väljund:
Siin käivitatakse skript kaks korda. Olemasolev võtmeväärtus antakse esimest korda ja olematu võtmeväärtus antakse teist korda.
Näide 2: otsige konkreetset väärtust JSON-i andmetest
Järgmine skript näitab, kuidas otsida konkreetset väärtust JSON-i andmetest. taotlejad muutuja sisaldab JSON-i andmeid, kus võtit kasutatakse taotleja nime salvestamiseks ja väärtust kasutatakse taotleja salvestamiseks või puudub. Skript otsib JSON-i andmetest väärtust 'puudub' ja prindib vastava nime väärtuse. eest loopi kasutatakse siin JSON-i andmete kordamiseks.
#!/ usr / bin / env python3# Import jsoni moodul
import json
# Määrake jsoni andmed
taotlejad = "" "
"Scott C Aldridge": "kohal",
"Joe L Foss": "kohal",
"Clyde M Gold": "kohal",
"Monique C Doolittle": "puudub",
"David M Volkert": "kohal",
"Israel M Oneal": "kohal",
"Elizabeth M Groff": "puudub"
""
# Algata loendur
loendur = 0
# laadige jsoni andmed
appList = json.koormad (taotlejad)
# kordama json puuduvate taotlejate loendi leidmiseks
võtme jaoks rakenduse loendis:
kui (appList [key] == 'Puudub'):
# Kontrollige loendurit, printige sõnum
kui (loendur == 0):
print ("Puuduvad järgmised taotlejad:")
print (võti)
loendur = loendur + 1
# Printige teade, kui ühtegi taotlejat pole kohal
kui (loendur == 0):
print ("Kõik taotlejad on kohal")
Väljund:
Skripti JSON-i andmetel puudub kaks taotlejat. See on pärast skripti käivitamist saadud väljund:
Näide 3: otsingu väärtus JSON massiivi andmetes, kasutades kohandatud funktsiooni
Järgmises skriptis nimetatakse JSON-i massiiv jsondata on määratletud. Siit otsitakse võtme konkreetset väärtust ja kui väärtus on olemas, prinditakse väljundina teise seotud võtme väärtus. otsingu_hind () funktsioon on siin määratletud, võtke väärtus nimi võti, mida otsitakse JSON-i andmetest ja see prindib vastava väärtuse ühiku hind võti.
#!/ usr / bin / env python3# Import jsoni moodul
import json
# Määrake jsoni muutuja
jsondata = "" "[
"nimi": "Pliiats",
"ühiku hind": 5
,
"nimi": "Kustutuskumm",
"ühiku hind": 3
,
"nimi": "Pliiats",
"ühiku hind": 10
,
"nimi": "Valge raamat",
"ühiku hind": 15
] "" "
# laadige jsoni andmed
esemed = json.koormused (jsondata)
# Sisestage üksuse nimi, mida soovite otsida
item = input ("Sisestage üksuse nimi: \ n")
# Määrake funktsioon üksuse otsimiseks
def otsingu_hind (nimi):
üksuste keyval jaoks:
kui nimi.madalam () == keyval ['nimi'].alumine ():
return keyval ['ühiku_hind']
# Kontrollige tagastusväärtust ja printige sõnum
if (otsingu_hind (üksus) != Puudub):
print ("Hind on:", otsingu_hind (üksus))
muu:
print ("Üksust ei leitud")
Väljund:
Selles väljundis käivitatakse skript kaks korda. "pliiats ' võetakse väärtusena nimi võtmes, mis eksisteerib JSON andmed. The ühiku hind kohta "pliiats" on 10 see on trükitud. Järgmine, "raamat" võetakse sisendväärtusena, mida JSON-i andmetes pole.
Näide 4: otsinguvõti pesastatud JSON-andmetes
Järgmine skript näitab samme konkreetse võtme väärtuse otsimiseks pesastatud JSON-i andmetest. Siin pesastatud JSON muutuja nimega pesastatudData deklareeritakse pesastatud andmete salvestamiseks. See skript otsib naiste käekella kaubamärki.
#!/ usr / bin / env python3# Import jsoni moodul
import json
# Määrake pesastatud andmete jsoni muutuja
nestedData = "" "
"vaadata":
"mehed":
"brand": "Titan",
"hind": 200
,
"naised":
"brand": "Kodanik",
"hind": 250
,
"laps":
"brand": "Blancpain",
"hind": 100
"" "
# Laadige jsoni andmed
jälgimisnimekiri = json.koormused (nestedData)
# Otsige naiste jaoks kaubamärki
kui jälgimisloendis on „bränd” [„kell”] [„naised”]:
print (jälgimisloend ['kell'] ['naised'] ['bränd'])
Väljund:
Ülalolevas skriptis on naiste käekellade jaoks ainult üks brändiväärtus, mis onKodanik". Pärast skripti käivitamist väljastatakse järgmine.
Näide 5: JSON-failist kirje otsimine filtrimeetodi ja lambda abil
Järgmised toimingud näitavad, kuidas saate JSON-failist kirjet otsida kindla võtme ja väärtuste põhjal. Sisu sisu raamatud.json fail on toodud allpool.
raamatud.json
["isbn": "7799349885",
"nimi": "Sõidukidünaamika põhitõed",
"autor": "Joop P. Pauwelussen "
,
"isbn": "7799349885",
"name": "Kolbmootorite vool ja põlemine",
"autor": "C. Arcoumanis ja T. Kamimoto "
,
"isbn": "7799349885",
"nimi": "Autojuhtimise ergonoomika juhi ja sõiduki vastasmõju",
"autor": "Nikolaos Gkikas"
]
Järgmine skript otsib kirjet aadressilt raamatud.json fail, kus väärtus autor võti on Nikolaos Gkikas kasutades lambda ja filter () meetod.
#!/ usr / bin / env python3# Importige JSON-moodul
import json
# Avage olemasolev JSON-fail muutujasse laadimiseks
avatud ('raamatud.json ') kui jsondata:
andmed = json.koormus (jsondata)
# Otsige andmeid võtme ja väärtuse põhjal, kasutades filtri- ja loendimeetodit
print (loend (filter (lambda x: x ["autor"] == "Nikolaos Gkikas", andmed)))
Väljund:
Pärast skripti käivitamist ilmub järgmine väljund.
Järeldus:
Kui töötate suure hulga JSON-andmetega ja peame andmetest konkreetse teabe hõlpsalt välja selgitama, peame ülesande täitmiseks kasutama tõhusaid viise. JSON-i andmete võtme ja väärtuse otsimise erinevaid viise selgitatakse selles artiklis, et aidata pythoni kasutajatel protsessi edukalt sooritada.