Python

Ako čítať a písať súbory Json v Pythone

Ako čítať a písať súbory Json v Pythone
Tento článok vysvetlí, ako zaobchádzať so súbormi a údajmi JSON v programovacom jazyku Python. Python je dodávaný so zabudovaným modulom „json“, ktorý umožňuje ľahkú a jednoduchú manipuláciu s údajmi JSON.

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 json
s 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 json
s 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ástroj

Spustení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_file

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

Hry Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Ako sťahovať a prehrávať Sid Meier's Civilization VI v systéme Linux
Úvod do hry Civilization 6 predstavuje moderné poňatie klasického konceptu predstaveného v sérii hier Age of Empires. Myšlienka bola dosť jednoduchá; ...
Hry Ako inštalovať a hrať Doom na Linuxe
Ako inštalovať a hrať Doom na Linuxe
Úvod do Doom Séria Doom vznikla v 90. rokoch po vydaní pôvodného Doomu. Bol to okamžitý hit a od tej doby herná séria získala množstvo ocenení a origi...
Hry Vulkan pre používateľov systému Linux
Vulkan pre používateľov systému Linux
S každou novou generáciou grafických kariet vidíme, že vývojári hier posúvajú hranice grafickej vernosti a prichádzajú o krok bližšie k fotorealizmu. ...