O spoločnosti JSON
JSON (JavaScript Object Notation) je štandard formátu súborov a ukladania údajov, ktorý na ukladanie a výmenu údajov využíva páry kľúč - hodnota. Je to najbežnejšie používaný formát výmeny údajov, ktorý sa často vyskytuje v rozhraniach RESTful API, ľahkých databázach, konfiguračných súboroch a inom offline alebo online softvéri, ktorý potrebuje na ukladanie, načítanie a výmenu údajov. Väčšina programovacích jazykov obsahuje knižnice, ktoré štandardne analyzujú a zapisujú údaje JSON, a JSON je agnostický dátový formát programovacieho jazyka. Hodnoty uložené v súbore JSON alebo užitočné zaťaženie zvyčajne obsahujú reťazce, čísla a serializovateľné dátové typy, ako sú zoznamy (polia).
Slovníky JSON a Python
Údaje JSON v pythone sa prevedú na objekt slovníka pomocou metódy „načítania“. Často sa ukazuje, že niektorí ľudia stavajú na roveň údajom json a slovníku pythonu, pretože syntax ich definovania je takmer rovnaká. Údaje json však nie sú nič iné ako textový reťazec štruktúrovaný v rigidnej syntaxi, zatiaľ čo slovník pythonu je objektom dátovej štruktúry uloženým v pamäti. Ak chcete uložiť údaje zo slovníka do textového súboru alebo ich odoslať do iného programu ako Python, budete ich musieť najskôr previesť na textový reťazec (bajty). Tento textový reťazec s výpisom / prevedením je definovaný v štandardnej syntaxi JSON a proces premeny slovníka python na reťazec kompatibilný s json sa nazýva serializácia.
Čítanie a ukladanie údajov JSON v Pythone
Údaje JSON je možné načítať ako odpoveď zo servera, načítať ich zo súboru, rozrezať ich z parametrov dotazu URL atď. Tento článok sa zameria hlavne na čítanie údajov JSON z lokálne uloženého súboru. Predpokladajme, že „test.Súbor json ”obsahuje nasledujúce údaje:
"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "Aby som si prečítal test.súbor json v pythone, môžete použiť nasledujúci kód:
import jsons otvoreným ("test.json ") ako f:
data = json.zaťaženie (f)
výpis = json.skládky (údaje)
tlač (údaje)
tlač (typ (údaje))
tlač (výpis)
tlač (typ (výpis))
Prvý riadok vo vyššie uvedenom kóde importuje modul json. V ďalšom riadku sa na bezpečné prečítanie obsahu súboru používa výraz „s otvoreným“. V rámci bloku „s otvoreným“ „json.metóda načítania “sa používa na čítanie a ukladanie obsahu súborov do premennej„ data “. Údaje načítané v predchádzajúcom kroku sa prevedú späť do reťazca json pomocou príkazu „json.skládka “. Spustením vyššie uvedeného kódu sa zobrazí nasledujúci výstup:
'codename': 'Eoan Ermine', 'version': 'Ubuntu 19.10 '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 "
Vo výstupe vyššie si všimnite, že „json.metóda načítania nespracovaných údajov json do slovníka python, zatiaľ čo „json.dumps ”metódy prevedú slovník na reťazec, ktorý je kompatibilný so štruktúrou JSON. Po prevedení objektu JSON na objekt slovníka python môžete na spracovanie údajov použiť vstavané metódy slovníka python. Vyššie uvedený príklad je dosť jednoduchý a nezahŕňa polia v dátach JSON ani vnorené hodnoty. V rámci pythonu však môžete s týmito hodnotami zaobchádzať ako s ostatnými vnorenými slovníkmi a zoznamami.
Triedenie a pekná tlač údajov JSON
„JSON.dump ”metóda podporuje niektoré voliteľné parametre pre triedenie kľúčov a peknú tlač výstupu pre lepšiu čitateľnosť.
import jsons otvoreným ("test.json ") ako f:
data = json.zaťaženie (f)
výpis = json.skládky (data, sort_keys = True, odsadenie = 4)
tlač (výpis)
Vyššie uvedený kód zobrazí nasledujúci výstup:
"codename": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Konverzie dátových typov
Nasledujúci zoznam ilustruje, ako sa hodnoty JSON prevádzajú na objekty pythonu a naopak.
JSON | Python |
struna | str |
číslo | int alebo float |
pravda lož | Pravda lož |
nulový | Žiadne |
pole | zoznam |
objekt | diktát |
Json.modul príkazového riadku
Python obsahuje pekný nástroj príkazového riadku „json.nástroj “, ktorý možno použiť na overenie a peknú tlač reťazcov a súborov JSON.
$ echo '"codename": "Eoan Ermine", "version": "Ubuntu 19.10 " '| python3 -m json.nástrojSpustením vyššie uvedeného príkazu sa zobrazí nasledujúci výstup:
"codename": "Eoan Ermine",
"version": "Ubuntu 19.10 "
Môžete tiež použiť json.nástroj so súbormi JSON. Nahraďte „in_file“ a „out_file“ v nižšie uvedenom príkaze požadovanými hodnotami:
$ python3 -m json.nástroj in_file out_fileOkrem peknej tlače, triedenia a overovania údajov JSON, JSON.nástroj nerobí nič iné. Ak teda chcete manipulovať s ľubovoľnými údajmi JSON, musíte pomocou zabudovaného modulu JSON napísať svoj vlastný vlastný kód.