Una delle tecniche di serializzazione dei dati più utilizzate è il formato JSON. Python ha un modulo JSON integrato per lavorare con i dati JSON. Supporta tutti i tipi di tipi di dati primitivi come numero, stringa, ecc., Insieme agli oggetti Python. I dati sono archiviati in un formato strutturato in JSON. A volte è necessario cercare dati particolari da una stringa JSON di grandi dimensioni o da un file JSON. Esistono molti modi per cercare dati specifici dai dati JSON. In questo articolo viene mostrato come è possibile cercare i dati JSON in base alla chiave o al valore utilizzando lo script python.
Esempio 1: chiave di ricerca in semplici dati JSON
Il seguente script mostra come cercare se una chiave particolare esiste o meno in una stringa JSON. Qui, una variabile denominata dati dei clienti è definito per memorizzare i dati JSON. Il valore della chiave sarà preso come input dall'utente. Il metodo load() del modulo JSON viene utilizzato per caricare i dati JSON nella variabile denominata cliente. Il prossimo, 'nel' l'operatore viene utilizzato per cercare la chiave.
#!/usr/bin/env python3# Importa modulo json
import json
# Definisci i dati json
CustomerData ="""
"id": "3425678",
"nome": "Giovanni Michele",
"email": "[email protetta]",
"tipo": "normale",
"indirizzo": "4258 Poplar Chase Lane, Boise, Idaho."
"""
# Inserisci il valore della chiave che vuoi cercare
keyVal = input("Inserisci un valore chiave: \n")
# carica i dati json
cliente = json.carichi (Dati Cliente)
# Cerca il valore della chiave utilizzando l'operatore 'in'
se keyVal nel cliente:
# Stampa il messaggio di successo e il valore della chiave
print("%s si trova nei dati JSON" %keyVal)
print("Il valore di", keyVal,"is", customer[keyVal])
altro:
# Stampa il messaggio se il valore non esiste
print("%s non è stato trovato nei dati JSON" %keyVal)
Produzione:
Lo script viene eseguito due volte qui. Viene fornito per la prima volta un valore di chiave esistente e per la seconda volta viene fornito un valore di chiave inesistente.
Esempio-2: cercare un valore particolare nei dati JSONSON
Il seguente script mostra come cercare un particolare valore nei dati JSON. candidati la variabile contiene i dati JSON in cui la chiave viene utilizzata per memorizzare il nome del richiedente e il valore viene utilizzato per memorizzare il richiedente è presente o assente. Lo script cercherà il valore "Assente" nei dati JSON e stamperà il valore del nome corrispondente. per loop viene utilizzato qui per iterare i dati JSON.
#!/usr/bin/env python3# Importa modulo json
import json
# Definisci i dati json
candidati ="""
"Scott C Aldridge": "Presente",
"Joe L Foss": "Presente",
"Clyde M Gold": "Presente",
"Monique C Doolittle": "Assente",
"David M Volkert": "Presente",
"Israele M Oneal": "Presente",
"Elizabeth M Groff": "Assente"
"""
# Inizializza un contatore
contatore = 0
# carica i dati json
appList = json.carichi (richiedenti)
# iterare json per trovare l'elenco dei candidati assenti
per la chiave in appList:
if (appList[key] == 'Assente'):
# Controlla il contatore per stampare il messaggio
if (contatore == 0):
print("Sono assenti i seguenti richiedenti:")
stampa (chiave)
contatore = contatore + 1
# Stampa il messaggio se nessun richiedente è assente
if (contatore == 0):
print("Tutti i candidati sono presenti")
Produzione:
Secondo i dati JSON della sceneggiatura, due candidati sono assenti. Questo sarà l'output risultante dopo aver eseguito lo script:
Esempio 3: ricerca il valore nei dati dell'array JSON utilizzando la funzione personalizzata
Nello script seguente, un array JSON denominato jsondata è definito. Un particolare valore di una chiave verràcercato qui e se il valore esiste verràstampato come output il valore di un'altra chiave correlata. prezzo_ricerca() la funzione è definita qui prendi il valore di nome chiave che verrà cercata nei dati JSON e stamperà il valore del corrispondente prezzo unitario chiave.
#!/usr/bin/env python3# Importa modulo json
import json
# Definisci la variabile json
jsondata = """[
"nome": "Penna",
"prezzo_unità": 5
,
"nome": "Gomma da cancellare",
"prezzo_unità": 3
,
"nome": "Matita",
"prezzo_unità": 10
,
"nome": "Libro bianco",
"prezzo_unità":15
]"""
# carica i dati json
item = json.carichi (jsondata)
# Inserisci il nome dell'elemento che vuoi cercare
item = input("Inserisci il nome di un elemento:\n")
# Definisci una funzione per cercare l'elemento
def search_price (nome):
per keyval negli elementi:
se nome.lower() == keyval['nome'].inferiore():
ritorna keyval['unit_price']
# Controlla il valore restituito e stampa il messaggio
if (search_price(item) != Nessuno):
print("Il prezzo è:", search_price(item))
altro:
print("Articolo non trovato")
Produzione:
Lo script viene eseguito due volte in questo output. 'matita' è preso come il valore di nome chiave che esiste in JSON dati. Il prezzo unitario di 'matita' è 10 che è stampato. Il prossimo, 'libro' viene preso come un valore di input che non esiste nei dati JSON.
Esempio-4: chiave di ricerca nei dati JSON nidificati
Lo script seguente mostra i passaggi per la ricerca del valore di una chiave particolare nei dati JSON nidificati. Qui, una variabile JSON nidificata denominata nestedData è dichiarato per memorizzare dati nidificati. Questo script cercherà il marchio dell'orologio da donna.
#!/usr/bin/env python3# Importa modulo json
import json
# Definisci la variabile json dei dati nidificati
nestedData = """
"orologio":
"uomini":
"marca": "Titano",
"prezzo": 200
,
"donne":
"marca": "Cittadino",
"prezzo": 250
,
"ragazzo":
"marca": "Blancpain",
"prezzo": 100
"""
# Carica i dati json
lista di controllo = json.carichi (nestedData)
# Cerca "marca" per le donne
if 'brand' in watchlist['watch']['women']:
print(watchlist['watch']['women']['brand'])
Produzione:
Nello script sopra, c'è solo un valore del marchio per l'orologio da donna che è "Cittadino'. Il seguente sarà l'output dopo aver eseguito lo script.
Esempio-5: ricerca voce da un file JSON utilizzando il metodo filter e lambda
I seguenti passaggi mostrano come cercare la voce da un file JSON in base a una chiave e a valori particolari. Il contenuto di libri.json il file è riportato di seguito.
libri.json
["isbn": "7799349885",
"name": "Essenziale della dinamica del veicolo",
"autore": "Joop P. Pauwelussen"
,
"isbn": "7799349885",
"name": "Flusso e combustione nei motori alternativi",
"autore": "C. Arcoumanis e T. Kamimoto"
,
"isbn": "7799349885",
"name": "Interazione conducente veicolo ergonomia automobilistica",
"autore": "Nikolaos Gkikas"
]
Il seguente script cercherà la voce da libri.json file, dove il valore di l'autore la chiave è Nikolaos Gkikas usando lambda e filtro() metodo.
#!/usr/bin/env python3# Importa modulo JSON
import json
# Apri il file JSON esistente per il caricamento in una variabile
con open('libri.json') come jsondata:
data = json.caricamento (jsondata)
# Cerca i dati in base a chiave e valore utilizzando il metodo di filtro e elenco list
print(list(filter(lambda x:x["autore"]=="Nikolaos Gkikas",data)))
Produzione:
Il seguente output apparirà dopo aver eseguito lo script.
Conclusione:
Quando si lavora con una grande quantità di dati JSON e si ha bisogno di trovare facilmente le informazioni specifiche dai dati, è necessario utilizzare modi efficienti per svolgere l'attività. Diversi modi di cercare chiave e valore nei dati JSON sono spiegati in questo articolo per aiutare gli utenti Python a eseguire correttamente il processo.