Pokročilý kurz vývoje v Pythonu
Kapitola
>
Úroveň

Serializační moduly
Modul JSON

Cíl

Jděte na servisní stanici a ujistěte se, že data jsou správně uložena pomocí modulu JSON pro formátování souborů.

Jižně od budovy přístavby v nové stavební oblasti se nachází servisní stanice; celá tato oblast bude přestavěna na pěstování plodin. Stanice má řadu terminálů, které zpracovávají data pro nový rozvoj; data můžeme zapisovat ručně, ale zabere to spoustu času.

Pro zpracování dat můžeme použít JSON, což je zkratka pro JavaScript Object Notation. Jedná se o datový formát, který je nezávislý na programovacích jazycích a ukládá informace ve snadno čitelné podobě pro uchovávání a přenos dat.

Pro práci s JSON v Pythonu můžeme použít import json, což nám poskytne přístup k funkcím JSON. Pro naše účely budeme používat následující funkce:

  • json.loads(): Převádí JSON řetězec na Pythonovská data, bere jeden argument – řetězec, který chcete analyzovat do Pythonu.
  • json.dumps(): Převádí Python data na JSON řetězec, tato funkce může přijmout až čtyři(4) argumenty, přičemž pouze první je vyžadován. Jsou následující:
    1. Pythonovská data, která chcete převést do JSON – mohou být následujících datových typů: slovníky, seznamy, n-tice, řetězce, čísla, desetinná čísla, boolean a None.
    2. indent: počet mezer, které chcete přidat na začátek datového bodu
    3. separators: části, které se mají objevit mezi a/nebo na konci datových bodů
    4. sort_keys: seřadí klíče slovníku abecedně, pokud převádíte soubor typu slovník

Nejdříve se vydejte k zlaté značce X v výhledu nalevo a postavte se ke stolu s poznámkou. Pomocí funkce read() ověřte informace potřebné k potvrzení stavu terminálu a zaznamenejte si je. Pokračujte k světlé značce X před terminálem, kde je konstanta jménem transmission. Použijte json.dumps() pro formátování na JSON, aby bylo možné ji převést, například takto: transmission = json.dumps(transmission) .

Vytvořte slovník s názvem load a uložte do něj výsledek funkce json.loads() s konstantou transmission jako argumentem. Tím se JSON převede na Python, takže k informacím můžete snadno přistupovat. Použijte funkci speak() s klíči uvedenými v poznámce a se slovníkem load, který jste vytvořili. Například: player.speak(load["system"]) – proveďte to pro všechny klíče.

Po zkontrolování informací na terminálu se vydejte směrem ke stanici, vstupte dovnitř a vydejte se ke světlé značce X na zeleném koberci. Zkontrolujte poznámku pomocí funkce read(), ověřte a zaznamenejte si hodnoty; v editoru je předpřipravený slovník s názvem profile, doplňte chybějící hodnoty podle údajů v poznámce.

Vyjděte ke tmavé značce X na zeleném koberci, postavte se k terminálu a vytvořte proměnnou transfer, do které uložíte výsledek funkce json.dumps() s předaným slovníkem profile jako jediným argumentem. Tím převedete slovník na JSON řetězec. Použijte předpřipravenou funkci display() a předáním transfer JSONu uložte data do terminálu.

Vyjděte ke tmavé značce X na červeném koberci a pomocí funkce read() ověřte data již zadaná do terminálu. Data nejsou prezentována ve správném formátu; aby byla informace řádně uložena, musí být data uložena a formátována jako JSON. Data jsou uložena ve slovníkové konstantě nazvané red_data. Vytvořte proměnnou red_storage a uložte do ní výsledek funkce json.dumps().

Pro formátování dat přidejte do funkce následující argumenty: přidejte red_data pro převod konstanty na JSON, přidejte indent a nastavte ho na 5 pro formátování textu, přidejte separators a přidejte ("- ", " = ") pro přidání těchto symbolů na konec každého řádku. Řádek by měl vypadat takto: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Použijte předpřipravenou funkci display() a předáním red_storage JSON řetězce uložte a zobrazte naformátovaná data.

Vyjděte ke tmavé značce X na modrém koberci, postavte se k terminálu a použijte funkci read(). Stejně jako předtím data nejsou správně uložena; je potřeba je nejen naformátovat, ale také seřadit. Data jsou uložena v konstantě nazvané blue_data. Vytvořte proměnnou blue_storage a uložte do ní výsledek funkce json.dumps().

Co se týče argumentů: přidejte blue_data pro převod konstanty na JSON, přidejte indent a nastavte ho na 4 pro formátování textu, přidejte separators a přidejte (".0", " = ") pro přidání těchto symbolů na konec každého řádku. Kromě toho také přidejte argument sort_keys jako poslední argument a nastavte ho na True, například: sort_keys=True. Použijte předpřipravenou funkci display() a předáním blue_storage JSON řetězce uložte a zobrazte seřazená data a úroveň tím dokončete.

Kniha Kódu