Coding for KidsCoding for Kids
Kreatív SzintekKihívásokTanári Útmutató
Szavazzon a funkciókra
Fejlett Python fejlesztési tanfolyam
Fejezet
>
Szint

Szerializációs modulok
JSON modul

Célkitűzés

Menj fel a szolgáltatás állomásra, és győződj meg arról, hogy az adatokat megfelelően tárolják a JSON modul segítségével a fájlok formázásához.

Van egy szolgáltatás állomás az annex épület déli oldalán, az új építkezési területen; ez az egész terület újra lesz fejlesztve növénytermesztés céljából. Az állomáson számos terminál dolgozik az új fejlesztés adatainak feldolgozásán. Dolgozhatunk az adatok kézi beírásával, de az rengeteg időt venne igénybe. Az adatok kezeléséhez használhatjuk a JSON-t, ami a JavaScript Object Notation rövidítése; ez egy programozási nyelvektől független adat formátum, amely könnyen olvasható módon tárolja és továbbítja az információkat.

Ahhoz, hogy Pythonban használhassuk a JSON-t, alkalmazhatjuk az import json parancsot, ami hozzáférést biztosít a JSON függvényekhez. Céljainkhoz az alábbi függvényeket fogjuk használni:

  • json.loads(): Átalakítja a JSON karakterláncot Python adattípussá, egy argumentumot vár, ami az a karakterlánc, amit Python formátumba szeretnénk átalakítani.
  • json.dumps(): Átalakítja a Python adatot JSON karakterlánccá. Ez a függvény akár négy (4) argumentumot is elfogad, de csak az első kötelező a használatához. Ezek a következők:
    1. A Python adat, amelyet JSON formátumba kívánsz alakítani: ezek lehetnek szótárak, listák, tuple-ök, string, integer, float, boolean és None típusú adatok.
    2. indent: a szóközök száma, amit az adatpont elejére szeretnél hozzáadni.
    3. separators: ezek azok a részek, amelyek megjelennek az adatpontok között és/vagy azok végén.
    4. sort_keys: ha szótár típusú adatot alakítasz át, ez az argumentum ábécé sorrendbe rendezi a kulcsokat.

Kezdésként menj a bal oldali kiküldetésen található arany X jelhez, és fordulj arra a pulthoz, amin a jegyzet található. Használd a read() függvényt azzal, hogy ellenőrizd a terminál állapotának igazolásához szükséges információkat, és jegyezd fel azokat. Menj a terminál előtt található világos X jelhez, ahol egy transmission nevű állandó található; használd a json.dumps() függvényt, hogy json formátumba alakítsd, például így: transmission = json.dumps(transmission).

Hozz létre egy load nevű szótárat, és tárold benne a json.loads() függvény által visszaadott értéket úgy, hogy a transmission állandót adod argumentumként. Ezzel a művelettel a Json-t Python adattípussá alakítod, így az információkhoz könnyen hozzáférhetsz. Használd a speak() függvényt a jegyzetben szereplő kulcsokkal, a létrehozott load szótárral. Például: player.speak(load["system"]) – ismételd ezt minden kulcs esetében.

Miután ellenőrizted a terminálon az információkat, sétálj le az állomás felé, menj be, és irányítsd magad a zöld szőnyegen található világos X jelhez. Használd a read() függvényt a jegyzet ellenőrzéséhez, figyeld meg és jegyezd fel az értékeket; az editorban van egy előre megírt profile nevű szótár, amelybe a jegyzetben szereplő információkkal kell kitöltened a hiányzó értékeket.

Sétálj a zöld szőnyegen lévő sötét X jelhez, fordulj a terminál felé, és hozz létre egy transfer nevű változót, melyben tárolod a json.dumps() függvény értékét úgy, hogy a profile szótárat adod egyetlen argumentumként. Ezzel a lépéssel a szótárat JSON karakterlánccá alakítjuk. Használd az előre megírt display() függvényt, és add át neki a transfer JSON-t, hogy az adatok a terminálon tárolásra kerüljenek.

Sétálj a vörös szőnyegen lévő sötét X jelhez, és használd a read() függvényt az előzőleg a terminálra beírt adatok ellenőrzéséhez. Az adatok nincsenek megfelelő formátumban; ahhoz, hogy helyesen tárold az információkat, azt JSON formátumban kell tárolni és formázni. Az adatok egy red_data nevű szótár állandóban vannak tárolva, ezért hozz létre egy red_storage nevű változót, és tárold benne a json.dumps() függvény értékét.

Az adatok formázásához add hozzá a következő argumentumokat a függvényhez: add meg a red_data-t a konstans JSON formátumba alakításához, add hozzá az indent argumentumot, és állítsd 5-re a szöveg formázásához, majd add hozzá a separators argumentumot, melynek értéke ("- ", " = ") – ezek a szimbólumok minden sor végén lesznek hozzáadva. A sor így fog kinézni: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Használd az előre megírt display() függvényt, és add át neki a red_storage JSON karakterláncot az adatok formázott tárolásához és megjelenítéséhez.

Sétálj a kék szőnyegen lévő sötét X jelhez, fordulj a terminál felé, és használd a read() függvényt. Ahogy korábban, az adatok nincsenek megfelelően tárolva, ezért formázni és rendezni is kell őket. Az adatok egy blue_data nevű állandóban találhatók, így hozz létre egy blue_storage nevű változót, és tárold benne a json.dumps() függvény értékét.

Argumentumokként add meg a blue_data-t a konstans JSON formátumba alakításához, az indent argumentumot állítsd 4-re a szöveg formázásához, valamint add hozzá a separators argumentumot, melynek értéke (".0", " = "), hogy ezek a szimbólumok minden sor végén hozzáadásra kerüljenek. Ezen felül add hozzá a sort_keys argumentumot is, mint utolsó argumentumot, és állítsd azt True-ra, így: sort_keys=True. Használd az előre megírt display() függvényt, és add át neki a blue_storage JSON karakterláncot az adatok rendezett tárolásához és megjelenítéséhez, ezzel befejezve a szintet.

Kódkönyv