Curs avansat de dezvoltare în 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 corpul anexam în zona de construcții noi; întreaga zonă va fi reamenajată pentru cultivarea recoltelor. Stația are o varietate de terminale care procesează date pentru noua dezvoltare. Am putea introduce datele manual, dar asta ar dura foarte mult. Pentru a gestiona datele putem utiliza 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 stocarea și transmiterea datelor.

Pentru a folosi JSON în Python putem folosi import json, care ne oferă acces la funcțiile JSON; pentru scopurile noastre vom folosi următoarele funcții:

  • json.loads(): Convertește un șir JSON într-o structură de date Python; primește un argument, și anume șirul pe care dorești să-l analizezi în Python.
  • json.dumps(): Convertește date Python într-un șir JSON; această funcție poate primi până la patru (4) argumente, dintre care doar primul este obligatoriu. Acestea sunt:
    1. date Python pe care vrei să le convertești în JSON: pot fi de următoarele tipuri: dicționare, liste, tuple, șiruri, numere întregi, numere float, boolean și None.
    2. indent: numărul de spații pe care vrei să le adaugi la începutul fiecărui element de date
    3. separators: acestea sunt părțile pe care vrei să le apară între și/sau la sfârșitul elementelor de date.
    4. sort_keys: sortează cheile unui dicționar alfabetic dacă convertești un tip de fișier dicționar.

Pentru început, îndreaptă-te spre semnul X auriu din avanpostul din stânga și stai cu fața la biroul cu notiță. Folosește funcția read() pentru a verifica informațiile necesare confirmării stării terminalului și notează-le. Mergi la semnul X deschis din fața terminalului; există o constantă numită transmission. Folosește json.dumps() pentru a o formata ca JSON astfel încât să o putem converti, astfel: transmission = json.dumps(transmission).

Creează un dicționar numit load și salvează valoarea returnată de json.loads() folosind constanta transmission ca argument. Acest lucru va converti JSON-ul în Python, astfel încât informațiile să poată fi accesate ușor. Folosește funcția speak() cu cheile indicate în notiță, folosind dicționarul load pe care l-ai creat. De exemplu: player.speak(load["system"]). Fă asta pentru toate cheile.

După ce ai verificat informațiile de pe terminal, mergi în jos spre stație, intră și îndreaptă-te spre semnul X deschis deasupra covorului verde. Verifică notița folosind funcția read(), consultă valorile și notează-le. În editor există un dicționar predefinit numit profile; completează valorile lipsă cu informațiile din notiță.

Mergi la semnul X închis deasupra covorului verde, stai cu fața la terminal și creează o variabilă numită transfer în care salvezi valoarea returnată de json.dumps(), având dicționarul profile ca singur argument. Astfel convertim dicționarul într-un șir JSON. Folosește funcția predefinită display() și adaugă JSON-ul transfer pentru a stoca datele în terminal.

Mergi la semnul X închis deasupra covorului 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 le stoca corect, acestea trebuie formate ca JSON. Datele sunt stocate într-o constantă de tip dicționar numită red_data; creează o variabilă numită red_storage și salvează valoarea returnată de funcția json.dumps().

Pentru a formata datele, adaugă următoarele argumente 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 folosește (\"- \", \" = \") 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 predefinită display() și adaugă șirul JSON red_storage pentru a stoca și afișa datele formatate.

Mergi la semnul X închis deasupra covorului albastru și stai cu fața la terminal, apoi folosește funcția read(); la fel ca înainte, datele nu sunt stocate corect și trebuie formate, dar și sortate. Datele sunt stocate într-o constantă numită blue_data; creează o variabilă numită blue_storage și salvează valoarea returnată de funcția json.dumps().

Ca argumente, adaugă blue_data pentru a converti constanta în JSON, adaugă indent și setează-l la 4 pentru a formata textul, adaugă separators și folosește (\".0\", \" = \") pentru a adăuga aceste simboluri la sfârșitul fiecărei linii. În plus, adaugă argumentul sort_keys ca ultim argument și setează-l la True, astfel: sort_keys=True. Folosește funcția predefinită display() și adaugă șirul JSON blue_storage pentru a stoca și afișa datele sortate și a finaliza nivelul.

Carte de Cod