Parser i walidator Pythona JSON

Dowiedz się, jak czytać, sprawdzać poprawność, modyfikować i serializować kod JSON w języku Python. Opanuj wbudowaną bibliotekę json za pomocą realistycznych przykładów.

Spróbuj w Edytorze

Przegląd

JSON (JavaScript Object Notation) to standardowy format wymiany danych w Internecie. Python udostępnia potężny wbudowany moduł o nazwie `json`, który tłumaczy ciągi znaków JSON na słowniki Pythona i odwrotnie.

Moduł udostępnia dwa główne zestawy operacji: „loads” i „dumps” do bezpośredniej obsługi ciągów JSON oraz „load” i „dump” do zapisywania lub odczytywania danych bezpośrednio ze strumieni plików.

Podczas pracy z JSON obsługa błędów ma kluczowe znaczenie. Python zgłasza błąd `json.JSONDecodeError`, jeśli składnia łańcucha jest zepsuta, co jest niezbędne do wyłapania podczas pobierania ładunków z publicznych interfejsów API.

Dane wyjściowe kodu i wykonania

Skrypt demonstrujący sprawdzanie poprawności ciągu JSON, analizowanie dyktowania, modyfikacje i ładne drukowanie.

import json

raw_json = """
{
    "status": "success",
    "data": {
        "user_id": 9042,
        "username": "coder_xyz",
        "roles": ["admin", "developer"],
        "verified": true
    }
}
"""

try:
    # Parsing JSON string into Python dict
    data = json.loads(raw_json)
    print("--- JSON Decoded Successfully ---")
    print(f"Username: {data['data']['username']}")
    print(f"Is Admin: {'admin' in data['data']['roles']}")
    
    # Mutating Python dict
    data['data']['verified'] = False
    data['data']['last_login'] = "2026-05-25"
    
    # Serializing dict back to formatted JSON
    pretty_json = json.dumps(data, indent=4)
    print("\n--- Modified JSON String ---")
    print(pretty_json)
    
except json.JSONDecodeError as e:
    print(f"Invalid JSON Format: {e}")
Wyjście terminala
--- JSON Decoded Successfully ---
Username: coder_xyz
Is Admin: True

--- Modified JSON String ---
{
    "status": "success",
    "data": {
        "user_id": 9042,
        "username": "coder_xyz",
        "roles": [
            "admin",
            "developer"
        ],
        "verified": false,
        "last_login": "2026-05-25"
    }
}

Wdrażanie krok po kroku

  • Odczytywanie konfiguracji aplikacji i plików uwierzytelniających
  • Analizowanie odpowiedzi z punktów końcowych interfejsu API REST
  • Zapisywanie stanów lub poziomów programów w narzędziach komputerowych

Często zadawane pytania

Jaka jest różnica między zrzutem a zrzutem w Pythonie?

`dumps` serializuje obiekt do formatu ciągu JSON, podczas gdy `dump` zapisuje serializowany strumień JSON bezpośrednio do zapisywalnego obiektu pliku.

Jak Python obsługuje wartości null JSON?

Dekoder `json` w Pythonie automatycznie mapuje JSON `null` na `None`, `true` i `false` na `True` i `False`, a tablice na listy.

Powiązane tematy