Coding for KidsCoding for Kids
Poziomy KreatywneWyzwaniaPrzewodnik dla Nauczycieli
Głosuj na funkcje
Zaawansowany kurs programowania w Pythonie
Rozdział
>
Poziom

Moduły serializacji
Moduł JSON

Cel

Udaj się do stacji serwisowej i upewnij się, że dane są prawidłowo zapisane, używając modułu JSON do formatowania plików.

Na południe od budynku aneksu, w nowej strefie budowlanej, znajduje się stacja serwisowa, cały ten obszar ma zostać przekształcony na plantacje. Stacja posiada różne terminale przetwarzające dane dla nowej inwestycji; możemy ręcznie wpisywać dane, ale zajęłoby to dużo czasu.

Do przetwarzania danych możemy użyć JSON, co oznacza JavaScript Object Notation – jest to format danych niezależny od języków programowania, który przechowuje informacje w łatwym do odczytu formacie, nadającym się do przechowywania i transmisji danych.

Aby korzystać z JSON w Pythonie, możemy użyć import json, który zapewni nam dostęp do funkcji JSON. Dla naszych celów użyjemy następujących funkcji:

  • json.loads(): Konwertuje ciąg JSON na dane Pythona, przyjmuje jeden argument, którym jest ciąg, który chcesz przekształcić do Pythona.
  • json.dumps(): Konwertuje dane Pythona na ciąg JSON, ta funkcja może przyjmować do czterech (4) argumentów, przy czym tylko pierwszy jest wymagany. Są to:
    1. Dane Pythona, które chcesz przekonwertować na JSON: mogą to być następujące typy danych: słowniki, listy, krotki, łańcuchy znaków, liczby całkowite, liczby zmiennoprzecinkowe, wartości logiczne oraz typ None.
    2. indent: liczba spacji, które chcesz dodać na początku każdego punktu danych
    3. separators: symbole, które chciałbyś umieścić pomiędzy i/lub na końcu punktów danych
    4. sort_keys: sortuje klucze słownika alfabetycznie, jeśli przekształcasz dane typu słownika

Na początek, udaj się do złotego znaku X w posterunku po lewej stronie i zwróć się ku biurku z notatką. Użyj funkcji read() aby zweryfikować informacje niezbędne do potwierdzenia statusu terminala i zanotuj je. Udaj się do lekkiego znaku X przed terminalem; znajduje się tam stała nazwana transmission, użyj json.dumps() aby sformatować ją jako json, tak jak to: transmission = json.dumps(transmission) .

Utwórz słownik o nazwie load i zapisz w nim wynik funkcji json.loads() z przekazaną stałą transmission jako argument. Spowoduje to konwersję JSON do Pythona, co umożliwi łatwy dostęp do informacji. Użyj funkcji speak() wraz z kluczami wymienionymi w notatce, korzystając z utworzonego słownika load. Na przykład: player.speak(load["system"]), wykonaj to dla wszystkich kluczy.

Po sprawdzeniu informacji na terminalu, udaj się do stacji, wejdź do środka i podejdź do lekkiego znaku X na zielonym dywanie. Sprawdź notatkę, używając funkcji read(), zweryfikuj i zanotuj wartości; w edytorze znajduje się wstępnie napisany słownik o nazwie profile, uzupełnij brakujące wartości informacjami z notatki.

Udaj się do ciemnego znaku X na zielonym dywanie, stanąć przed terminalem i utwórz zmienną o nazwie transfer, przypisując jej wartość funkcji json.dumps() z przekazaniem słownika profile jako jedynego argumentu. W ten sposób konwertujemy słownik na ciąg JSON. Użyj wstępnie napisanej funkcji display() i przekaż do niej ciąg JSON transfer, aby zapisać dane w terminalu.

Udaj się do ciemnego znaku X na czerwonym dywanie i użyj funkcji read() do weryfikacji danych już wprowadzonych w terminalu. Dane nie są przedstawione we właściwym formacie; aby prawidłowo przechować informację, muszą być zapisane i sformatowane jako JSON. Dane są przechowywane w stałej słownikowej red_data, utwórz zmienną o nazwie red_storage i przypisz jej wartość funkcji json.dumps().

Aby sformatować dane, dodaj do funkcji następujące argumenty: przekaż red_data do konwersji stałej na JSON, dodaj indent ustawiony na 5 aby sformatować tekst, dodaj separators ustawiony na ("- ", " = ") aby dodać te symbole na końcu każdej linii. Linia powinna wyglądać w ten sposób: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Użyj wstępnie napisanej funkcji display() i przekaż ciąg JSON red_storage, aby zapisać i wyświetlić sformatowane dane.

Udaj się do ciemnego znaku X na niebieskim dywanie, podejdź do terminala i użyj funkcji read(); podobnie jak wcześniej, dane nie są prawidłowo zapisane i wymagają formatowania oraz sortowania. Dane są przechowywane w stałej blue_data, utwórz zmienną o nazwie blue_storage i przypisz jej wartość funkcji json.dumps().

Jako argumenty: przekaż blue_data do konwersji stałej na JSON, dodaj indent ustawiony na 4 aby sformatować tekst, dodaj separators ustawiony na (".0", " = ") aby dodać te symbole na końcu każdej linii. Dodatkowo, jako ostatni argument, dodaj sort_keys ustawiony na True, czyli: sort_keys=True. Użyj wstępnie napisanej funkcji display() i przekaż ciąg JSON blue_storage, aby zapisać i wyświetlić posortowane dane oraz ukończyć poziom.

Księga Kodów