Jednou z nejpoužívanějších technik serializace dat je formát JSON. Python má vestavěný modul JSON pro práci s daty JSON. Podporuje všechny typy primitivních datových typů, jako je číslo, řetězec atd., Spolu s objekty pythonu. Data jsou uložena ve strukturovaném formátu v JSON. Někdy je nutné prohledat konkrétní data z velkého řetězce JSON nebo souboru JSON. Existuje mnoho způsobů, jak vyhledat konkrétní data z dat JSON. Jak je možné prohledávat data JSON na základě klíče nebo hodnoty pomocí skriptu python, je uveden v tomto článku.
Příklad 1: Vyhledávací klíč v jednoduchých datech JSON
Následující skript ukazuje, jak hledat, pokud konkrétní klíč existuje v řetězci JSON nebo ne. Zde proměnná s názvem data zákazníka je definováno pro ukládání dat JSON. Hodnota klíče bude brána jako vstup od uživatele. Načte () metoda modulu JSON se používá k načtení dat JSON do proměnné s názvem zákazník. další, 'v' operátor se používá k vyhledání klíče.
#!/ usr / bin / env python3# Importujte modul JSON
importovat JSON
# Definujte data JSON
customerData = "" "
"id": "3425678",
"name": "John Micheal",
"email": "[e-mail chráněn]",
"type": "normal",
"address": "4258 Poplar Chase Lane, Boise, Idaho."
"" "
# Zadejte hodnotu klíče, kterou chcete prohledat
keyVal = input ("Zadejte hodnotu klíče: \ n")
# načíst data JSON
zákazník = json.zatížení (customerData)
# Hledejte hodnotu klíče pomocí operátoru 'in'
pokud keyVal u zákazníka:
# Vytiskněte zprávu o úspěchu a hodnotu klíče
tisk ("% s se nachází v datech JSON"% keyVal)
print ("Hodnota", keyVal, "is", zákazník [keyVal])
jiný:
# Vytiskněte zprávu, pokud hodnota neexistuje
print ("% s nebyl nalezen v datech JSON"% keyVal)
Výstup:
Skript se zde provede dvakrát. Hodnota existujícího klíče je uvedena poprvé a hodnota neexistujícího klíče je uvedena podruhé.
Příklad 2: Vyhledejte konkrétní hodnotu v datech JSON
Následující skript ukazuje, jak vyhledat konkrétní hodnotu v datech JSON. žadatelé proměnná obsahuje data JSON, kde se klíč používá k uložení jména žadatele a hodnota se používá k uložení žadatele je přítomen nebo chybí. Skript prohledá hodnotu „Chybí“ v datech JSON a vytiskne odpovídající hodnotu názvu. pro Zde se používá smyčka pro iteraci dat JSON.
#!/ usr / bin / env python3# Importujte modul JSON
importovat JSON
# Definujte data JSON
žadatelé = "" "
"Scott C Aldridge": "Současnost",
"Joe L Foss": "Současnost",
"Clyde M Gold": "Současnost",
"Monique C Doolittle": "Nepřítomen",
"David M Volkert": "Současnost",
"Israel M Oneal": "Současnost",
"Elizabeth M Groff": "Nepřítomen"
"" "
# Inicializovat počítadlo
counter = 0
# načíst data JSON
appList = json.zatížení (žadatelé)
# iterujte json a vyhledejte seznam chybějícího žadatele
pro klíč v appList:
if (appList [key] == 'Nepřítomen'):
# Zkontrolujte počítadlo a vytiskněte zprávu
if (counter == 0):
print ("Následující žadatelé chybí:")
tisk (klíč)
counter = counter + 1
# Vytiskněte zprávu, pokud chybí žádný žadatel
if (counter == 0):
tisk („Jsou přítomni všichni žadatelé“)
Výstup:
Podle údajů JSON ze skriptu chybí dva uchazeči. Toto bude výsledný výstup po spuštění skriptu:
Příklad 3: Hledání hodnoty v datech pole JSON pomocí vlastní funkce
V následujícím skriptu pojmenované pole JSON jsondata je definováno. Zde se prohledá konkrétní hodnota klíče a pokud tato hodnota existuje, bude jako výstup vytištěna hodnota dalšího souvisejícího klíče. cena_vyhledávání () funkce je zde definována, vezměte hodnotu název klíč, který bude prohledán v datech JSON a vytiskne hodnotu odpovídajícího jednotková cena klíč.
#!/ usr / bin / env python3# Importujte modul JSON
importovat JSON
# Definujte proměnnou JSON
jsondata = "" "[
"name": "Pen",
"unit_price": 5
,
"name": "Guma",
"unit_price": 3
,
"name": "Tužka",
"unit_price": 10
,
"name": "Bílá kniha",
"unit_price": 15
] "" "
# načíst data JSON
items = json.zatížení (jsondata)
# Zadejte název položky, kterou chcete vyhledat
item = input ("Zadejte název položky: \ n")
# Definujte funkci pro vyhledání položky
def cena_vyhledávání (název):
pro keyval v položkách:
pokud jméno.lower () == keyval ['name'].dolní():
návrat keyval ['unit_price']
# Zkontrolujte návratovou hodnotu a vytiskněte zprávu
if (cena_vyhledávání (položka) != Žádný):
tisk ("Cena je:", cena_vyhledávání (položka))
jiný:
tisk ("Položka nebyla nalezena")
Výstup:
Skript se v tomto výstupu provede dvakrát. ''tužka' se bere jako hodnota název klíč, který existuje v JSON data. The jednotková cena z 'tužka' je 10 který je vytištěn. další, 'rezervovat' je bráno jako vstupní hodnota, která neexistuje v datech JSON.
Příklad 4: Vyhledávací klíč ve vnořených datech JSON
Následující skript ukazuje kroky při hledání hodnoty konkrétního klíče ve vnořených datech JSON. Zde je pojmenovaná vnořená proměnná JSON nestedData je deklarováno k ukládání vnořených dat. Tento skript prohledá značku dámských hodinek.
#!/ usr / bin / env python3# Importujte modul JSON
importovat JSON
# Definujte proměnnou JSON vnořených dat
nestedData = "" "
"hodinky":
"muži":
"brand": "Titan",
"cena": 200
,
"ženy":
"brand": "Citizen",
"cena": 250
,
"dítě":
"brand": "Blancpain",
"cena": 100
"" "
# Načtěte data JSON
watchlist = json.zatížení (nestedData)
# Hledejte „značku“ pro ženy
pokud „značka“ v seznamu sledovaných [„sledovat“] [„ženy“]:
tisk (seznam sledovaných ['sledovat'] ['ženy'] ['značka'])
Výstup:
Ve výše uvedeném skriptu existuje pouze jedna hodnota značky pro dámské hodinky, která jeObčan''. Následující bude výstup po spuštění skriptu.
Příklad 5: Vyhledat položku ze souboru JSON pomocí metody filtru a lambda
Následující kroky ukazují, jak můžete vyhledat položku ze souboru JSON na základě konkrétního klíče a hodnot. Obsah knihy.JSON soubor je uveden níže.
knihy.JSON
["isbn": "7799349885",
"name": "Základy dynamiky vozidla",
"author": "Joop P. Pauwelussen "
,
"isbn": "7799349885",
"name": "Tok a spalování v pístových motorech",
"author": "C. Arcoumanis a T. Kamimoto "
,
"isbn": "7799349885",
"name": "Automotive Ergonomics Interaction Driver Vehicle",
"author": "Nikolaos Gkikas"
]
Následující skript prohledá položku z knihy.JSON soubor, kde je hodnota autor klíč je Nikolaos Gkikas použitím lambda a filtr() metoda.
#!/ usr / bin / env python3# Importujte modul JSON
importovat JSON
# Otevřete existující soubor JSON pro načtení do proměnné
s otevřenými ('knihy.json ') jako jsondata:
data = json.zatížení (jsondata)
# Hledání dat na základě klíče a hodnoty pomocí metody filtru a seznamu
tisk (seznam (filtr (lambda x: x ["autor") == "Nikolaos Gkikas", data)))
Výstup:
Po spuštění skriptu se zobrazí následující výstup.
Závěr:
Když pracujeme s velkým množstvím dat JSON a potřebujete snadno zjistit konkrétní informace z dat, musíme k provedení úkolu použít efektivní způsoby. V tomto článku jsou vysvětleny různé způsoby hledání klíče a hodnoty v datech JSON, které pomáhají uživatelům pythonu úspěšně provést proces.