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 JSONs 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 JSONs 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_fileKromě 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.