Python

Kuidas otsida andmeid JSON-is pythoni abil

Kuidas otsida andmeid JSON-is pythoni abil

Ü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.

Tasuta ja avatud lähtekoodiga mängumootorid Linuxi mängude arendamiseks
See artikkel hõlmab loetelu tasuta ja avatud lähtekoodiga mängumootoritest, mida saab kasutada 2D- ja 3D-mängude arendamiseks Linuxis. Selliseid mängu...
Tomb Raider for Linuxi õpetus
Shadow of the Tomb Raider on kaheteistkümnes täiendus seeria Tomb Raider - tegevus- ja seiklusmängude frantsiisile, mille on loonud Eidos Montreal. Ni...
Kuidas FPS-i suurendada Linuxis?
FPS tähistab Kaadrit sekundis. FPS-i ülesanne on mõõta kaadrisagedust video taasesitamisel või mängude esitamisel. Lihtsamalt öeldes nimetatakse iga s...