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ára és cseréjére. Ez a legszélesebb körben használt adatcsere -formátum, amelyet gyakran látnak 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 cserélniük. A legtöbb programozási nyelv alapértelmezés szerint tartalmaz könyvtárakat a JSON adatok elemzésére és írására, 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, például listákat (tömböket) tartalmaznak.
JSON és Python szótárak
A pythonban található JSON adatok betöltési módszerrel szótári objektummá konvertálódnak. Gyakran látható, hogy egyesek egyenlővé teszik a json adatokat és a python szótárat, mivel mindkettő meghatározásának szintaxisa közel azonos. A json adatok azonban nem mások, mint egy merev szintaxisba épített szöveges karakterláncok, míg a python -szótár a memóriában tárolt adatszerkezeti objektum. Ha a szótáradatokat szöveges fájlban kívánja tárolni, vagy el szeretné küldeni egy másik, nem python programnak, akkor először szöveges karakterlánccá (bájt) kell konvertálnia. Ezt a kiíratott / konvertált szöveges karakterláncot a JSON szabványos szintaxisa határozza meg, és a python szótár json -kompatibilis karakterlánccá történő átalakításának folyamatát sorosításnak nevezzük.
JSON -adatok olvasása és kiürítése Pythonban
A JSON -adatok válaszként visszakereshetők a szerverről, olvashatók fájlból, szeletelhetők az URL -lekérdezési paraméterekből stb. Ez a cikk elsősorban a json adatok olvasására összpontosít egy helyben tárolt fájlból. Tegyük fel, hogy a test.json fájl a következő adatokat tartalmazza:
{'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10'}
A test.json fájl pythonban történő olvasásához használja az alábbi kódot:
importjson
val vel nyisd ki ('test.json') mintf:
adat=json.Betöltés(f)
lerak=json.guba(adat)
nyomtatás (adat)
nyomtatás (típus(adat))
nyomtatás (lerak)
nyomtatás (típus(lerak))
A fenti kód első sora importálja a json modult. A következő sorban az open megnyomásával biztonságosan olvasható a fájl tartalma. A nyitott blokkon belül a json.load metódust használják a fájltartalom olvasására és tárolására az adatváltozóban. Az előző lépésben betöltött adatokat a json.dump metódussal vissza alakítjuk json karakterlánccá. A fenti kód futtatása a következő kimenetet mutatja:
{'kód név':'Eoan Ermine', 'változat':'Ubuntu 19.10'}<osztály 'diktál'>
{'kód név':'Eoan Ermine', 'változat':'Ubuntu 19.10'}
<osztály 'str'>
Figyelje meg a fenti kimenetben, hogy a json.load metódus beolvassa a nyers json adatokat egy python szótárba, míg a json.dumps metódusok átalakítják a szótárt a JSON struktúrával kompatibilis karakterlánccá. Miután egy JSON objektumot python szótár objektummá alakított át, a beépített python szótár módszerekkel kezelheti az adatokat. A fenti példa meglehetősen egyszerű, és nem tartalmaz tömböket a JSON -adatokban vagy beágyazott értékekben. A pythonon belül azonban kezelheti ezeket az értékeket, mint bármely más beágyazott szótár és lista.
A JSON adatok rendezése és szép nyomtatása
A json.dump módszer támogat néhány opcionális paramétert a kulcsok rendezéséhez és a kimenet szép nyomtatásához a jobb olvashatóság érdekében.
importjsonval vel nyisd ki ('test.json') mintf:
adat=json.Betöltés(f)
lerak=json.guba(adat,sort_keys=Igaz,behúzás=4)
nyomtatás (lerak)
A fenti kód a következő kimenetet mutatja:
{'kódnév': 'Eoan Ermine',
'verzió': 'Ubuntu 19.10'
}
Adattípus -konverziók
Az alábbi lista szemlélteti, hogy a JSON -értékek hogyan alakulnak át python -objektumokká, és fordítva.
JSON | Piton |
húr | o |
szám | int vagy float |
igaz hamis | Igaz hamis |
nulla | Egyik sem |
sor | lista |
tárgy | diktálni |
Json.tool parancssori modul
A Python tartalmaz egy szép parancssori segédprogramot, a json.tool -t, amely a JSON karakterláncok és fájlok érvényesítésére és szép nyomtatására használható.
$ echo'{' codename ':' Eoan Ermine ',' version ':' Ubuntu 19.10 '}'| python3 -m json.eszközA fenti parancs futtatásával a következő kimenet jelenik meg:
{'kódnév': 'Eoan Ermine',
'verzió': 'Ubuntu 19.10'
}
A json.tool programot JSON fájlokkal is használhatja. Cserélje le az in_file és out_file parancsot a kívánt értékekkel:
$ python3 -m json.eszközin_file out_fileA JSON adatok szép nyomtatásán, rendezésén és érvényesítésén kívül a json.tool nem tesz mást. Tehát ha bármilyen JSON-adatot manipulálni szeretne, akkor saját egyedi kódját kell írnia a beépített JSON-modul használatával.