Formattare l'output JSON
Lezione 5 di 9 del corso Python e JSON di Coddy.
Quando si lavora con dati JSON, spesso è utile formattare l'output per renderlo più leggibile. La funzione json.dumps() di Python fornisce parametri per controllare la formattazione dell'output JSON, rendendolo più leggibile per le persone. Questo processo è spesso chiamato «formattazione con rientri».
Il parametro indent
Il parametro indent in json.dumps() consente di specificare il numero di spazi per il rientro. In questo modo si crea una struttura gerarchica più leggibile:
import json
data = {"name": "John", "age": 30, "city": "New York"}
# Senza indentazione
print(json.dumps(data))
# Con indentazione
print(json.dumps(data, indent=2))
L'output con indent=2 sarà:
{
"name": "John",
"age": 30,
"city": "New York"
}
Il parametro separators
Il parametro separators consente di specificare i separatori per gli elementi e le coppie chiave-valore. È una tupla di due stringhe: (item_separator, key_separator).
# Separatori predefiniti
print(json.dumps(data, indent=2))
# Separatori personalizzati
print(json.dumps(data, indent=2, separators=(', ', ': ')))
I separatori predefiniti sono (', ', ': '). Puoi usare questo parametro per rendere l'output più compatto o per aggiungere spaziature extra.
Combinare i parametri
Puoi combinare questi parametri per controllare in modo preciso l'output JSON:
formatted_json = json.dumps(data, indent=4, separators=(', ', ': '))
print(formatted_json)
Questa combinazione produce un output JSON ben formattato e facile da leggere, particolarmente utile quando si lavora con strutture annidate complesse o quando è necessario presentare dati JSON in un formato più leggibile per le persone.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Sfida
FacileCrea una funzione che formatta una struttura JSON annidata con indentazione e separatori personalizzati. La funzione deve:
- Accettare tre parametri: un dizionario o una lista Python, un livello di indentazione e un flag booleano per l'output compatto.
- Usare
json.dumps()per convertire l'input in una stringa JSON. - Impostare l'indentazione al livello specificato se il flag compatto è False, altrimenti non usare indentazione.
- Usare una virgola seguita da uno spazio (", ") come separatore degli elementi e due punti seguiti da uno spazio (": ") come separatore delle chiavi quando il flag compatto è False. Usare una virgola (",") e due punti (":") senza spazi quando il flag compatto è True.
- Restituire la stringa JSON formattata.
Verrà fornito il seguente input:
{"menu": {"id": "file", "value": "File", "popup": {"menuitem": [{"value": "New", "onclick": "CreateNewDoc()"}, {"value": "Open", "onclick": "OpenDoc()"}, {"value": "Close", "onclick": "CloseDoc()"}]}}}
4
false
Stampa la stringa JSON formattata risultante.
Provalo tu
import json
# Leggi l'input
json_input = input()
indent_level = int(input())
compact = input().lower() == 'true'
# Analizza l'input JSON
data = json.loads(json_input)
def format_json(data, indent, compact):
# TODO: Scrivi qui il tuo codice
# Implementa la funzione personalizzata di formattazione JSON
pass
# Formatta il JSON e stampa il risultato
formatted_json = format_json(data, indent_level, compact)
print(formatted_json)Tutte le lezioni di Python e JSON
Esercitati da solo: Compilatore Python online