Json fájlok olvasása és írása Pythonban

How Read Write Json Files Python



Ez a cikk elmagyarázza, hogyan kell kezelni a JSON fájlokat és adatokat Python programozási nyelven. A Python beépített json modullal rendelkezik, amely megkönnyíti a JSON adatok kezelését.

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.

importjson

val 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öz

A 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_file

A 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.