Curs Avansat de Dezvoltare Python
Capitolul
>
Nivel
Module de serializare
Modul JSON
Obiectiv
Mergi la stația de service și asigură-te că datele sunt stocate corect folosind modulul JSON pentru a formata fișierele.
Există o stație de service la sud de clădirea anexă din zona de construcții noi; întreaga zonă va fi reamenajată pentru cultivarea plantelor. Stația are o varietate de terminale care procesează date pentru noul proiect. Putem lucra scriind datele manual, însă asta ar dura mult timp. Pentru procesul de gestionare a datelor putem folosi JSON, care reprezintă JavaScript Object Notation; acesta este un format de date independent de limbajele de programare și stochează informații într-un mod ușor de citit pentru stocare și transmitere.
Pentru a folosi JSON în Python putem utiliza import json, care ne va oferi acces la funcțiile JSON; pentru scopurile noastre vom folosi următoarele funcții:
json.loads(): Convertește un șir JSON în date Python, primind ca argument șirul pe care dorești să-l parsezi în Python.json.dumps(): Convertește datele Python într-un obiect șir JSON; această funcție poate primi până la patru (4) argumente, doar primul fiind obligatoriu. Acestea sunt după cum urmează:- Datele Python pe care dorești să le convertești în JSON: pot fi de următoarele tipuri de date: dicționare, liste, tuple, șiruri de caractere, numere întregi, float, boolean și tipul de date None.
indent: numărul de spații pe care dorești să le adaugi la începutul fiecărui punct de date.separators: acestea sunt elementele care vor apărea între și/sau la sfârșitul punctelor de date.sort_keys: sortează cheile din dicționar alfabetic dacă convertești o structură de tip dicționar.
Pentru a începe, mergi la marca X de aur din avansat, spre stânga, și îndreaptă-te spre biroul cu nota de serviciu. Folosește funcția read() pentru a verifica informațiile necesare pentru a confirma starea terminalului și notează-le. Mergi spre marca X luminoasă din fața terminalului; există o constantă numită transmission, utilizează json.dumps() pentru a o formata ca JSON, astfel: transmission = json.dumps(transmission).
Creează un dicționar numit load și stochează valoarea obținută din json.loads() folosind constanta transmission ca argument. Aceasta va converti JSON-ul în Python, astfel încât informațiile pot fi accesate ușor. Folosește funcția speak() cu cheile specificate în nota de serviciu, utilizând dicționarul load creat. De exemplu: player.speak(load["system"]), fă acest lucru pentru toate cheile.
După ce ai verificat informațiile de pe terminal, mergi spre stație, intră și îndreaptă-te spre marca X luminoasă de pe covorul verde. Verifică nota de serviciu folosind funcția read(), analizează și notează valorile; în editor există un dicționar pre-scris numit profile, completează valorile lipsă cu informațiile din nota de serviciu.
Mergi la marca X întunecată de pe covorul verde, îndreaptă-te spre terminal și creează o variabilă numită transfer în care stochezi valoarea obținută din json.dumps(), adăugând dicționarul profile ca singur argument. Procedând astfel, convertim dicționarul într-un obiect șir JSON. Folosește funcția pre-scrisă display() și adaugă JSON-ul transfer pentru a stoca datele în terminal.
Mergi la marca X întunecată de pe covorul roșu și folosește funcția read() pentru a verifica datele deja introduse în terminal. Datele nu sunt prezentate într-un format corespunzător; pentru a stoca corect informațiile, acestea trebuie să fie stocate și formatate într-un JSON. Datele sunt stocate într-o constantă de dicționar numită red_data; creează o variabilă numită red_storage și stochează valoarea funcției json.dumps().
Pentru a formata datele, adaugă următorii argumenti la funcție: adaugă red_data pentru a converti constanta în JSON, adaugă indent și setează-l la 5 pentru a formata textul, adaugă separators și setează-l la ("- ", " = ") pentru a adăuga aceste simboluri la sfârșitul fiecărei linii. Linia ar trebui să arate astfel: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Folosește funcția pre-scrisă display() și adaugă șirul JSON red_storage pentru a stoca și afișa datele formate.
Mergi la marca X întunecată de pe covorul albastru, îndreaptă-te spre terminal și folosește funcția read(). Asemenea cazului anterior, datele nu sunt stocate corect și trebuie formatate, dar și sortate. Datele sunt stocate într-o constantă numită blue_data; creează o variabilă numită blue_storage și stochează valoarea funcției json.dumps().
Pentru argumente: adaugă blue_data pentru a converti constanta în JSON, adaugă indent și setează-l la 4 pentru a formata textul, adaugă separators și setează-l la (".0", " = ") pentru a adăuga aceste simboluri la sfârșitul fiecărei linii. În plus, adaugă și argumentul sort_keys ca ultim argument și setează-l la True, astfel: sort_keys=True. Folosește funcția pre-scrisă display() și adaugă șirul JSON blue_storage pentru a stoca și afișa datele sortate și a finaliza nivelul.