Python

Zoeken naar gegevens in JSON met python

Zoeken naar gegevens in JSON met python

Een van de meest gebruikte technieken voor gegevensserialisatie is het JSON-formaat. Python heeft een ingebouwde module JSON om met JSON-gegevens te werken. Het ondersteunt alle soorten primitieve gegevenstypen, zoals getallen, tekenreeksen, enz., samen met python-objecten. De gegevens worden gestructureerd opgeslagen in JSON. Soms is het nodig om bepaalde gegevens te zoeken in een grote JSON-string of een JSON-bestand. Er zijn veel manieren om naar specifieke gegevens uit JSON-gegevens te zoeken. Hoe JSON-gegevens kunnen worden doorzocht op basis van sleutel of waarde met behulp van het python-script wordt in dit artikel getoond.

Voorbeeld-1: zoeksleutel in eenvoudige JSON-gegevens

Het volgende script laat zien hoe u kunt zoeken of een bepaalde sleutel al dan niet in een JSON-tekenreeks voorkomt. Hier, een variabele met de naam klantgegevens is gedefinieerd om de JSON-gegevens op te slaan. De waarde van de sleutel wordt als invoer van de gebruiker genomen. load() methode van JSON-module wordt gebruikt om JSON-gegevens te laden in de variabele met de naam klant. De volgende, 'in' operator wordt gebruikt om de sleutel te zoeken.

#!/usr/bin/env python3
# Importeer json-module
import json
# Definieer json-gegevens
klantgegevens ="""
"id": "3425678",
"naam": "John Michael",
"e-mail": "[e-mail beveiligd]",
"type": "normaal",
"adres": "4258 Poplar Chase Lane, Boise, Idaho."
"""
# Voer de sleutelwaarde in waarnaar u wilt zoeken
keyVal = input("Voer een sleutelwaarde in: \n")
# laad de json-gegevens
klant = json.ladingen (klantgegevens)
# Zoek de sleutelwaarde met de 'in'-operator
indien keyVal in klant:
# Druk het succesbericht en de waarde van de sleutel af
print("%s is gevonden in JSON-gegevens" %keyVal)
print("De waarde van", keyVal,"is", klant[keyVal])
anders:
# Druk het bericht af als de waarde niet bestaat
print("%s is niet gevonden in JSON-gegevens" %keyVal)

Uitgang:

Het script wordt hier twee keer uitgevoerd. Een bestaande sleutelwaarde wordt voor de eerste keer gegeven en een niet-bestaande sleutelwaarde wordt voor de tweede keer gegeven.

Voorbeeld-2: Zoek een bepaalde waarde in JSON-gegevens

Het volgende script laat zien hoe u naar een bepaalde waarde in JSON-gegevens zoekt. sollicitanten variabele bevat de JSON-gegevens waarbij de sleutel wordt gebruikt om de naam van de aanvrager op te slaan en de waarde wordt gebruikt om de aanvrager op te slaan is aanwezig of afwezig. Het script zoekt de waarde 'Afwezig' in de JSON-gegevens en drukt de bijbehorende naamwaarde af. voor lus wordt hier gebruikt, herhaal de JSON-gegevens.

#!/usr/bin/env python3
# Importeer json-module
import json
# Definieer json-gegevens
sollicitanten ="""
"Scott C Aldridge": "Aanwezig",
"Joe L Foss": "Aanwezig",
"Clyde M Gold": "Aanwezig",
"Monique C Doolittle": "Afwezig",
"David M Volkert": "Aanwezig",
"Israël M Oneal": "Heden",
"Elizabeth M Groff": "Afwezig"
"""
# Initialiseer een teller
teller = 0
# laad de json-gegevens
appList = json.ladingen (aanvragers)
# herhaal json om de lijst met afwezige sollicitanten te vinden
voor sleutel in appList:
if (appList[key] == 'Afwezig'):
# Controleer de teller om het bericht af te drukken
als (teller == 0):
print("De volgende sollicitanten zijn afwezig:")
print(sleutel)
teller = teller + 1
# Print het bericht als er geen sollicitant afwezig is
als (teller == 0):
print("Alle sollicitanten zijn aanwezig")

Uitgang:

Volgens de JSON-gegevens uit het script zijn twee sollicitanten afwezig. Dit is de resulterende uitvoer na het uitvoeren van het script:

Voorbeeld-3: Zoekwaarde in JSON-arraygegevens met behulp van de aangepaste functie

In het volgende script wordt een JSON-array met de naam jsondata is gedefinieerd. Een bepaalde waarde van een sleutel wordt hier gezocht en als de waarde bestaat, wordt de waarde van een andere gerelateerde sleutel afgedrukt als uitvoer. zoekprijs() functie is hier gedefinieerd, neem de waarde van de naam sleutel die zal worden doorzocht in de JSON-gegevens en het zal de waarde van de corresponderende . afdrukken stuksprijs sleutel.

#!/usr/bin/env python3
# Importeer json-module
import json
# Definieer json-variabele
jsondata = """[

"name":"Pen",
"eenheidsprijs":5
,

"name":"Gum",
"eenheidsprijs":3
,

"name":"Potlood",
"eenheidsprijs":10
,

"name":"Wit papier",
"eenheidsprijs":15

]"""
# laad de json-gegevens
items = json.laadt (jsondata)
# Voer de itemnaam in waarnaar u wilt zoeken
item = input("Voer een itemnaam in:\n")
# Definieer een functie om het item te zoeken
def search_price (naam):
voor keyval in items:
als naam.lagere() == sleutelwaarde['naam'].lager():
return keyval['unit_price']
# Controleer de retourwaarde en print bericht
if (zoekprijs(item) != Geen):
print("De prijs is:", search_price(item))
anders:
print("Item is niet gevonden")

Uitgang:

Het script wordt twee keer uitgevoerd in deze uitvoer. 'potlood' wordt genomen als de waarde van de naam sleutel die bestaat in de JSON gegevens. De stuksprijs van 'potlood' is 10 dat is gedrukt. De volgende, 'boek' wordt genomen als een invoerwaarde die niet bestaat in de JSON-gegevens.

Voorbeeld-4: zoeksleutel in geneste JSON-gegevens

Het volgende script toont stappen voor het zoeken naar de waarde van een bepaalde sleutel in de geneste JSON-gegevens. Hier een geneste JSON-variabele met de naam geneste gegevens is gedeclareerd om geneste gegevens op te slaan. Dit script doorzoekt de merknaam van het dameshorloge.

#!/usr/bin/env python3
# Importeer json-module
import json
# Definieer json-variabele van geneste gegevens
nestedData = """
"kijk maar":
"Heren":
"brand":"Titan",
"prijs":200
,
"Dames":
"brand":"Burger",
"prijs":250
,
"kind":
"brand":"Blancpain",
"prijs":100


"""
# Laad de json-gegevens
volglijst = json.laadt (geneste gegevens)
# Zoek op 'merk' voor dames
indien 'merk' in volglijst['watch']['women']:
print(volglijst['watch']['women']['brand'])

Uitgang:

In het bovenstaande script is er maar één merkwaarde voor dameshorloges en dat is 'Inwoner'. Het volgende zal de uitvoer zijn na het uitvoeren van het script:.

Voorbeeld-5: Zoek invoer uit een JSON-bestand met behulp van filtermethode en lambda

De volgende stappen laten zien hoe u het item uit een JSON-bestand kunt doorzoeken op basis van een bepaalde sleutel en waarden. De inhoud van boeken.json bestand wordt hieronder gegeven:.

boeken.json

[

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

"isbn": "7799349885",
"name": "Stroom en verbranding in zuigermotoren",
"auteur": "C. Arcoumanis en T. Kamimoto"
,

"isbn": "7799349885",
"name": "Automotive Ergonomie Bestuurder Voertuiginteractie",
"auteur": "Nikolaos Gkikas"

]

Het volgende script zoekt het item van boeken.json bestand, waarbij de waarde van de auteur sleutel is Nikolaos Gkikas gebruik makend van lambda en filter() methode.

#!/usr/bin/env python3
# JSON-module importeren
import json
# Open het bestaande JSON-bestand om het in een variabele te laden
met open('boeken.json') als jsondata:
data = json.laden (jsondata)
# Zoek gegevens op basis van sleutel en waarde met behulp van filter- en lijstmethode
print(list(filter(lambda x:x["auteur"]=="Nikolaos Gkikas",data)))

Uitgang:

De volgende uitvoer zal verschijnen na het uitvoeren van het script:.

Conclusie:

Wanneer we met een grote hoeveelheid JSON-gegevens werken en de specifieke informatie gemakkelijk uit de gegevens moeten halen, moeten we efficiënte manieren gebruiken om de taak uit te voeren. Verschillende manieren om sleutel en waarde in JSON-gegevens te zoeken, worden in dit artikel uitgelegd om python-gebruikers te helpen het proces met succes uit te voeren.

Middelste muisknop werkt niet in Windows 10
De middelste muis knop helpt u door lange webpagina's en schermen met veel gegevens te bladeren. Als dat stopt, zul je uiteindelijk het toetsenbord ge...
Hoe de linker- en rechtermuisknop op Windows 10 pc te veranderen
Het is nogal een norm dat alle computermuisapparaten ergonomisch zijn ontworpen voor rechtshandige gebruikers. Maar er zijn muisapparaten beschikbaar ...
Emuleer muisklikken door te zweven met Clickless Mouse in Windows 10
Het gebruik van een muis of toetsenbord in de verkeerde houding of overmatig gebruik kan leiden tot veel gezondheidsproblemen, waaronder spanning, car...