A JSON-ról
A JSON (JavaScript Object Notation) egy fájlformátum és adattárolási szabvány, amely kulcs-érték párokat használ az adatok tárolásához és cseréjéhez. Ez a legszélesebb körben használt adatcsere-formátum, gyakran látható a RESTful API-kban, a könnyű adatbázisokban, a konfigurációs fájlokban és más offline vagy online szoftverekben, amelyeknek adatokat kell tárolniuk, visszakeresniük és kicserélniük. A legtöbb programozási nyelv tartalmazza a JSON-adatok alapértelmezett elemzésére és írására szolgáló könyvtárakat, a JSON pedig egy programozási nyelv agnosztikus adatformátuma. A JSON fájlban vagy hasznos terhelésben tárolt értékek általában karakterláncokat, számokat és sorosítható adattípusokat tartalmaznak, például listákat (tömböket).
JSON és Python szótárak
A python JSON-adatait a „load” módszer segítségével szótár-objektummá alakítják. Gyakran tapasztalható, hogy egyesek egyenlőségjelet tesznek a json adatokkal és a python szótárral, mivel mindkettejük meghatározásának szintaxisa közel azonos. A json adatok azonban nem más, mint egy merev szintaxisban strukturált szöveglánc, míg a python szótár a memóriában tárolt adatstruktúra-objektum. Ha szótáradatokat szeretne tárolni egy szövegfájlban, vagy el akarja küldeni egy másik, nem python programba, akkor először szöveges karakterlánnyá (bájtokká) kell konvertálni. Ezt az átdobott / konvertált szöveges karakterláncot a JSON szabványos szintaxisa határozza meg, és a python szótár Json-kompatibilis karakterláncokká alakításának folyamatát serializációnak nevezzük.
JSON-adatok olvasása és megsemmisítése a Pythonban
A JSON-adatok lekérhetők válaszként egy szerverből, fájlból olvashatók, URL-lekérdezési paraméterekből szeletelhetők és így tovább. Ez a cikk főleg a JSON adatok helyben tárolt fájlokról történő olvasására összpontosít. Tegyük fel, hogy egy „teszt.json ”fájl a következő adatokat tartalmazza:
"kódnév": "Eoan Ermine", "verzió": "Ubuntu 19.10 "A teszt elolvasásához.json fájl a pythonban, használhatja az alábbi kódot:
import jsonnyitott ("teszt.json ") as f:
adatok = json.terhelés (f)
dump = json.szemétlerakók (adatok)
nyomtatás (adatok)
nyomtatás (típus (adatok))
nyomtatás (dump)
nyomtatás (típus (dump))
A fenti kód első sora importálja a json modult. A következő sorban a „nyitva” kifejezéssel biztonságosan olvasható a fájl tartalma. A „nyitva” blokkon belül „json.betöltés ”módszer a fájl tartalmának az„ data ”változóban történő olvasására és tárolására szolgál. Az előző lépésben betöltött adatokat a „json.dump ”módszer. A fenti kód futtatásával a következő kimenet jelenik meg:
'kódnév': 'Eoan Ermine', 'verzió': 'Ubuntu 19.10 '"kódnév": "Eoan Ermine", "verzió": "Ubuntu 19.10 "
A fenti kimenetben vegye figyelembe, hogy a „json.betöltés ”módszer beolvassa a nyers json adatokat egy python szótárba, míg a„ json.dumps ”módszerek egy szótárt alakítanak át karakterlánccá, amely kompatibilis a JSON struktúrával. Miután egy JSON objektum átalakult Python szótár objektummá, beépített python szótár módszerekkel kezelheti az adatokat. A fenti példa elég alap, és nem tartalmaz tömböket a JSON-adatokban vagy a beágyazott értékekben. A pythonon belül azonban ezeket az értékeket ugyanúgy kezelheti, mint bármely más beágyazott szótárat és listát.
JSON adatok rendezése és szép nyomtatása
A „json.dump ”módszer néhány opcionális paramétert támogat a kulcsok rendezéséhez és a kimenet szép nyomtatásához az olvashatóság javítása érdekében.
import jsonnyitott ("teszt.json ") as f:
adatok = json.terhelés (f)
dump = json.dumpok (adatok, sort_keys = True, behúzás = 4)
nyomtatás (dump)
A fenti kód a következő kimenetet mutatja:
"kódnév": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Adattípus-konverziók
Az alábbi lista bemutatja, hogyan konvertálják a JSON értékeket python objektumokká és fordítva.
JSON | Piton |
húr | str |
szám | int vagy lebeg |
igaz hamis | Igaz hamis |
nulla | Egyik sem |
sor | lista |
tárgy | diktálja |
Json.eszköz Parancssori modul
A Python tartalmaz egy szép parancssori segédprogramot „json.eszköz ”, amelyet a JSON karakterláncok és fájlok hitelesítésére és szép nyomtatására lehet használni.
$ echo '"kódnév": "Eoan Ermine", "verzió": "Ubuntu 19.10 " '| python3 -m json.eszközA fenti parancs futtatásával a következő kimenet jelenik meg:
"kódnév": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Használhatja a json-t is.eszköz JSON fájlokkal. Cserélje ki az „in_file” és az „out_file” parancsot az alábbi parancsban a kívánt értékekre:
$ python3 -m json.eszköz in_file out_fileA JSON adatok szép nyomtatásán, válogatásán és érvényesítésén kívül a Json.eszköz nem csinál mást. Tehát, ha bármilyen JSON-adatot akar manipulálni, akkor a beépített JSON-modullal meg kell írnia saját egyéni kódját.