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:- 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.
indent: numărul de spații pe care vrei să le adaugi la începutul fiecărui element de dateseparators: acestea sunt părțile pe care vrei să le apară între și/sau la sfârșitul elementelor de date.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.