Menu
Coddy logo textTech

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.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

challenge icon

Wyzwanie

Łatwy

Utwórz funkcję, która formatuje zagnieżdżoną strukturę JSON z niestandardowym wcięciem i separatorami. Funkcja powinna:

  1. Przyjmować trzy parametry: słownik lub listę Pythona, poziom wcięcia oraz flagę logiczną określającą, czy wynik ma być zwarty.
  2. Używać json.dumps(), aby przekształcić dane wejściowe w ciąg JSON.
  3. Ustawiać wcięcie na określonym poziomie, jeśli flaga zwartego wyniku ma wartość False; w przeciwnym razie nie stosować wcięć.
  4. 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.
  5. 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