Krajta

Jak číst a zapisovat soubory Json v Pythonu

Jak číst a zapisovat soubory Json v Pythonu
Tento článek vysvětlí, jak zacházet se soubory a daty JSON v programovacím jazyce Python. Python je dodáván s vestavěným modulem „json“, který umožňuje snadnou a přímou manipulaci s daty JSON.

O společnosti JSON

JSON (JavaScript Object Notation) je formát souboru a standard pro ukládání dat, který k ukládání a výměně dat používá páry klíč – hodnota. Jedná se o nejpoužívanější formát pro výměnu dat, který je často vidět v RESTful API, odlehčených databázích, konfiguračních souborech a dalším offline nebo online softwaru, který potřebuje k ukládání, načítání a výměně dat. Většina programovacích jazyků zahrnuje knihovny, které ve výchozím nastavení analyzují a zapisují data JSON, a JSON je agnostický datový formát programovacího jazyka. Hodnoty uložené v souboru JSON nebo užitečném obsahu obvykle obsahují řetězce, čísla a serializovatelné datové typy, jako jsou seznamy (pole).

Slovníky JSON a Python

Data JSON v pythonu se převádějí na objekt slovníku pomocí metody „načíst“. Často je vidět, že někteří lidé považují data JSON a slovník Pythonu za rovnocenné, protože syntaxe pro definování obou je téměř stejná. Data json však nejsou nic jiného než textový řetězec strukturovaný v rigidní syntaxi, zatímco slovník pythonu je objekt datové struktury uložený v paměti. Chcete-li uložit data slovníku do textového souboru nebo je odeslat do jiného programu než Python, budete je muset nejprve převést na textový řetězec (bajty). Tento vypsaný / převedený textový řetězec je definován ve standardní syntaxi JSON a proces převodu slovníku pythonu na řetězec kompatibilní s json se nazývá serializace.

Čtení a výpis dat JSON v Pythonu

Data JSON lze načíst jako odpověď ze serveru, číst ze souboru, rozřezat z parametrů dotazu URL atd. Tento článek se zaměří hlavně na čtení dat JSON z lokálně uloženého souboru. Předpokládejme, že jde o „test.soubor json ”obsahuje následující údaje:

"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "

Číst test.soubor json v pythonu, můžete použít následující kód:

importovat JSON
s otevřeným ("test.json ") jako f:
data = json.zatížení (f)
dump = json.skládky (data)
tisk (data)
tisk (typ (data))
tisk (výpis)
tisk (typ (výpis))

První řádek ve výše uvedeném kódu importuje modul json. V dalším řádku se pro bezpečné čtení obsahu souboru používá „s otevřeným“. V rámci bloku „s otevřeným“ „json.metoda „načítání“ se používá ke čtení a ukládání obsahu souboru v proměnné „data“. Data načtená v předchozím kroku jsou převedena zpět do řetězce json pomocí „json.skládka “. Spuštěním výše uvedeného kódu se zobrazí následující výstup:

'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '

"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "

Všimněte si ve výstupu výše, že „json.Načíst ”metoda načte nezpracovaná data JSON do slovníku Pythonu, zatímco„ JSON.dumps ”metody převádí slovník na řetězec, který je kompatibilní se strukturou JSON. Jakmile byl objekt JSON převeden na objekt slovníku pythonu, můžete ke zpracování dat použít vestavěné metody slovníku pythonu. Výše uvedený příklad je docela základní a nezahrnuje pole v datech JSON nebo vnořených hodnotách. V rámci pythonu však můžete s těmito hodnotami zacházet jako s jinými vnořenými slovníky a seznamy.

Třídění a pěkný tisk dat JSON

„JSON.dump ”metoda podporuje některé volitelné parametry pro třídění klíčů a pěkný tisk výstupu pro lepší čitelnost.

importovat JSON
s otevřeným ("test.json ") jako f:
data = json.zatížení (f)
dump = json.skládky (data, sort_keys = True, odsazení = 4)
tisk (výpis)

Výše uvedený kód zobrazí následující výstup:


"codename": "Eoan Ermine",
"version": "Ubuntu 19.10 "

Převody datových typů

Níže uvedený seznam ukazuje, jak se hodnoty JSON převádějí na objekty pythonu a naopak.

JSON Krajta
tětiva str
číslo int nebo float
pravda, nepravda Pravda, lež
nula Žádný
pole seznam
objekt diktát

Json.modul příkazového řádku

Python obsahuje pěkný nástroj příkazového řádku „json.nástroj “, který lze použít k ověření a pěknému tisku řetězců a souborů JSON.

$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.nářadí

Spuštěním výše uvedeného příkazu se zobrazí následující výstup:


"codename": "Eoan Ermine",
"version": "Ubuntu 19.10 "

Můžete také použít json.nástroj se soubory JSON. Nahraďte „in_file“ a „out_file“ v níže uvedeném příkazu požadovanými hodnotami:

$ python3 -m json.nástroj in_file out_file

Kromě pěkného tisku, třídění a ověřování dat JSON, JSON.nástroj nedělá nic jiného. Takže pokud chcete manipulovat s jakýmikoli daty JSON, musíte napsat vlastní vlastní kód pomocí vestavěného modulu JSON.

Hry Zdarma a open source herní motory pro vývoj linuxových her
Zdarma a open source herní motory pro vývoj linuxových her
Tento článek pokryje seznam bezplatných a otevřených herních enginů, které lze použít pro vývoj 2D a 3D her v systému Linux. Existuje mnoho takových h...
Hry Výukový program Shadow of the Tomb Raider pro Linux
Výukový program Shadow of the Tomb Raider pro Linux
Shadow of the Tomb Raider je dvanáctý přírůstek do série Tomb Raider - série akčních adventur vytvořená Eidosem Montrealem. Tato hra byla docela dobře...
Hry Jak zvýšit FPS v Linuxu?
Jak zvýšit FPS v Linuxu?
FPS znamená Snímků za sekundu. Úkolem FPS je měřit snímkovou frekvenci při přehrávání videa nebo herních výkonech. Jednoduše řečeno, počet nepřerušova...