Python

Sådan søger du efter data i JSON ved hjælp af python

Sådan søger du efter data i JSON ved hjælp af python

En af de mest anvendte dataserialiseringsteknikker er JSON-format. Python har et indbygget modul JSON til at arbejde med JSON-data. Det understøtter alle typer primitive datatyper såsom antal, streng osv. Sammen med python-objekter. Dataene gemmes i et struktureret format i JSON. Nogle gange er det nødvendigt at søge i bestemte data fra en stor JSON-streng eller en JSON-fil. Der er mange måder at søge efter specifikke data fra JSON-data. Hvordan JSON-data kan søges baseret på nøgle eller værdi ved hjælp af python-scriptet, vises i denne artikel.

Eksempel 1: Søgetast i enkle JSON-data

Det følgende script viser, hvordan man søger, om der findes en bestemt nøgle i en JSON-streng eller ej. Her er en variabel navngivet kundedata er defineret til at gemme JSON-data. Nøglens værdi tages som input fra brugeren. belastninger () -metoden i JSON-modulet bruges til at indlæse JSON-data i den navngivne variabel kunde. Næste, 'i' bruges til at søge på nøglen.

#!/ usr / bin / env python3
# Importer json-modul
import json
# Definer json-data
customerData = "" "
"id": "3425678",
"name": "John Micheal",
"email": "[email protected]",
"type": "normal",
"adresse": "4258 Poplar Chase Lane, Boise, Idaho."
"" "
# Indtast den nøgleværdi, du vil søge efter
keyVal = input ("Indtast en nøgleværdi: \ n")
# indlæs json-dataene
kunde = json.belastninger (kundedata)
# Søg efter nøgleværdien ved hjælp af 'in' operatoren
hvis keyVal i kunde:
# Udskriv succesmeddelelsen og nøglens værdi
udskriv ("% s findes i JSON-data"% keyVal)
print ("Værdien af", keyVal, "er", kunde [keyVal])
andet:
# Udskriv meddelelsen, hvis værdien ikke findes
udskriv ("% s findes ikke i JSON-data"% keyVal)

Produktion:

Manuskriptet udføres to gange her. En eksisterende nøgleværdi gives for første gang, og en ikke-eksisterende nøgleværdi gives for anden gang.

Eksempel 2: Søg efter en bestemt værdi i JSON-data

Det følgende script viser, hvordan man søger efter en bestemt værdi i JSON-data. ansøgere variabel indeholder JSON-data, hvor nøglen bruges til at gemme ansøgerens navn og værdi bruges til at gemme ansøgeren er til stede eller fraværende. Scriptet søger efter værdien 'Fraværende' i JSON-dataene og udskriver den tilsvarende navnværdi. til loop bruges her iterere JSON-data.

#!/ usr / bin / env python3
# Importer json-modul
import json
# Definer json-data
ansøgere = "" "
"Scott C Aldridge": "Nuværende",
"Joe L Foss": "Nuværende",
"Clyde M Gold": "Present",
"Monique C Doolittle": "Fraværende",
"David M Volkert": "Present",
"Israel M Oneal": "Nuværende",
"Elizabeth M Groff": "Fraværende"
"" "
# Initialiser en tæller
tæller = 0
# indlæs json-dataene
appList = json.belastninger (ansøgere)
# iterate json for at finde listen over fraværende ansøger
for nøgle i appList:
if (appList [key] == 'Fraværende'):
# Kontroller tælleren for at udskrive beskeden
hvis (tæller == 0):
print ("Følgende ansøgere er fraværende:")
print (nøgle)
tæller = tæller + 1
# Udskriv meddelelsen, hvis ingen ansøger er fraværende
hvis (tæller == 0):
print ("Alle ansøgere er til stede")

Produktion:

Ifølge JSON-data fra scriptet er to ansøgere fraværende. Dette vil være den resulterende output efter kørsel af scriptet:

Eksempel 3: Søgningsværdi i JSON-arraydata ved hjælp af den brugerdefinerede funktion

I det følgende script kaldes et JSON-array jsondata er defineret. Her søges der efter en bestemt værdi af en nøgle, og hvis værdien eksisterer, bliver værdien af ​​en anden relateret nøgle udskrevet som output. søgepris () funktion er defineret her, tag værdien af navn nøgle, der søges i JSON-data, og den udskriver værdien af ​​den tilsvarende pris per stk nøgle.

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

"name": "Pen",
"enhedspris": 5
,

"name": "Viskelæder",
"enhedspris": 3
,

"name": "Blyant",
"enhedspris": 10
,

"name": "Hvidbog",
"enhedspris": 15

] "" "
# indlæs json-dataene
genstande = json.belastninger (jsondata)
# Indtast det varenavn, du vil søge efter
item = input ("Indtast et varenavn: \ n")
# Definer en funktion til at søge i emnet
def søg_pris (navn):
for keyval i emner:
hvis navn.lavere () == keyval ['name'].nederste():
return keyval ['unit_price']
# Kontroller returværdien og udskriv beskeden
hvis (søgepris (vare) != Ingen):
print ("Prisen er:", søgepris (vare))
andet:
udskriv ("Varen er ikke fundet")

Produktion:

Scriptet udføres to gange i denne output. ''blyant' tages som værdien af navn nøgle, der findes i JSON data. Det pris per stk af 'blyant' er 10 der er trykt. Næste, 'Bestil' tages som en inputværdi, der ikke findes i JSON-dataene.

Eksempel 4: Søgetast i indlejrede JSON-data

Det følgende script viser trin til søgning efter værdien af ​​en bestemt nøgle i de indlejrede JSON-data. Her hedder en indlejret JSON-variabel nestede data erklæres at gemme indlejrede data. Dette script søger efter kvinders urs brandnavn.

#!/ usr / bin / env python3
# Importer json-modul
import json
# Definer json-variablen for indlejrede data
nestedData = "" "
"holde øje":
"Mænd":
"brand": "Titan",
"pris": 200
,
"Kvinder":
"brand": "Citizen",
"pris": 250
,
"barn":
"brand": "Blancpain",
"pris": 100


"" "
# Indlæs json-dataene
overvågningsliste = json.belastninger (nestede data)
# Søg efter 'mærke' for kvinder
hvis 'brand' i overvågningslisten ['watch'] ['women']:
print (overvågningsliste ['watch'] ['women'] ['brand'])

Produktion:

I ovenstående script er der kun en brandværdi for kvinderur, som er 'Borger''. Følgende bliver output efter kørsel af scriptet.

Eksempel 5: Søg post fra en JSON-fil ved hjælp af filtermetode og lambda

De følgende trin viser, hvordan du kan søge i posten fra en JSON-fil baseret på en bestemt nøgle og værdier. Indholdet af bøger.json filen er angivet nedenfor.

bøger.json

[

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

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

"isbn": "7799349885",
"name": "Automotive Ergonomics Driver Vehicle Interaction",
"author": "Nikolaos Gkikas"

]

Det følgende script søger i posten fra bøger.json fil, hvor værdien af forfatteren nøglen er Nikolaos Gkikas ved brug af lambda og filter() metode.

#!/ usr / bin / env python3
# Importer JSON-modul
import json
# Åbn den eksisterende JSON-fil til indlæsning i en variabel
med åbne ('bøger.json ') som jsondata:
data = json.belastning (jsondata)
# Søg data baseret på nøgle og værdi ved hjælp af filter- og listemetode
print (liste (filter (lambda x: x ["author"] == "Nikolaos Gkikas", data)))

Produktion:

Følgende output vises efter kørsel af scriptet.

Konklusion:

Når vi arbejder med en stor mængde JSON-data og har brug for nemt at finde ud af de specifikke oplysninger fra dataene, er vi nødt til at bruge effektive måder at udføre opgaven på. Forskellige måder at søge på nøgle og værdi i JSON-data forklares i denne artikel for at hjælpe python-brugere med at udføre processen med succes.

Gratis og open source-spilmotorer til udvikling af Linux-spil
Denne artikel dækker en liste over gratis og open source-spilmotorer, der kan bruges til at udvikle 2D- og 3D-spil på Linux. Der er mange sådanne spil...
Shadow of the Tomb Raider til Linux-vejledning
Shadow of the Tomb Raider er den tolvte tilføjelse til Tomb Raider-serien - en action-adventure-spilfranchise oprettet af Eidos Montreal. Spillet blev...
Sådan styrkes FPS i Linux?
FPS står for Billeder i sekundet. FPS's opgave er at måle billedhastigheden i videoafspilninger eller spiloptræden. I enkle ord betegnes antallet af u...