Formatowanie danych wyjściowych JSON
Lekcja 5 z 9 w kursie Python i JSON w Coddy.
Podczas pracy z danymi JSON często przydaje się sformatowanie danych wyjściowych, aby były bardziej czytelne. Funkcja json.dumps() języka Python udostępnia parametry pozwalające kontrolować formatowanie danych wyjściowych JSON, dzięki czemu są one bardziej czytelne dla człowieka. Ten proces często nazywa się „ładnym drukowaniem”.
Parametr indent
Parametr indent w funkcji json.dumps() pozwala określić liczbę spacji używanych do wcięć. Dzięki temu powstaje bardziej czytelna, hierarchiczna struktura:
import json
data = {"name": "John", "age": 30, "city": "New York"}
# Bez wcięć
print(json.dumps(data))
# Z wcięciami
print(json.dumps(data, indent=2))
Dane wyjściowe z indent=2 będą wyglądać tak:
{
"name": "John",
"age": 30,
"city": "New York"
}
Parametr separators
Parametr separators pozwala określić separatory elementów oraz par klucz-wartość. Jest to krotka dwóch ciągów znaków: (item_separator, key_separator).
# Domyślne separatory
print(json.dumps(data, indent=2))
# Niestandardowe separatory
print(json.dumps(data, indent=2, separators=(', ', ': ')))
Domyślne separatory to (', ', ': '). Możesz użyć tego parametru, aby uzyskać bardziej zwarte dane wyjściowe lub dodać dodatkowe odstępy.
Łączenie parametrów
Możesz łączyć te parametry, aby precyzyjnie kontrolować format danych wyjściowych JSON:
formatted_json = json.dumps(data, indent=4, separators=(', ', ': '))
print(formatted_json)
Takie połączenie zapewnia ładnie sformatowane, łatwe do odczytania dane wyjściowe JSON, co jest szczególnie przydatne podczas pracy ze złożonymi strukturami zagnieżdżonymi lub gdy chcesz przedstawić dane JSON w formacie bardziej czytelnym dla człowieka.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wyzwanie
ŁatwyUtwórz funkcję, która formatuje zagnieżdżoną strukturę JSON z niestandardowym wcięciem i separatorami. Funkcja powinna:
- Przyjmować trzy parametry: słownik lub listę Pythona, poziom wcięcia oraz flagę logiczną określającą, czy wynik ma być zwarty.
- Używać
json.dumps(), aby przekształcić dane wejściowe w ciąg JSON. - Ustawiać wcięcie na określonym poziomie, jeśli flaga zwartego wyniku ma wartość False; w przeciwnym razie nie stosować wcięć.
- Używać przecinka, po którym następuje spacja (", "), jako separatora elementów oraz dwukropka, po którym następuje spacja (": "), jako separatora kluczy, gdy flaga zwartego wyniku ma wartość False. Gdy flaga zwartego wyniku ma wartość True, używać przecinka (",") i dwukropka (":") bez spacji.
- Zwracać sformatowany ciąg JSON.
Dane wejściowe będą następujące:
{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}}
4
false
Wyświetl sformatowany ciąg JSON.
Spróbuj swoich sił
import json
# Wczytaj dane wejściowe
json_input = input()
indent_level = int(input())
compact = input().lower() == 'true'
# Przeanalizuj dane wejściowe JSON
data = json.loads(json_input)
def format_json(data, indent, compact):
# TODO: Napisz tutaj swój kod
# Zaimplementuj funkcję niestandardowego formatowania JSON
pass
# Sformatuj JSON i wyświetl wynik
formatted_json = format_json(data, indent_level, compact)
print(formatted_json)Wszystkie lekcje w sekcji Python i JSON
Poćwicz samodzielnie: Kompilator Python online