Menu
Coddy logo textTech

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.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

challenge icon

Sfida

Facile

Crea una funzione che formatta una struttura JSON annidata con indentazione e separatori personalizzati. La funzione deve:

  1. Accettare tre parametri: un dizionario o una lista Python, un livello di indentazione e un flag booleano per l'output compatto.
  2. Usare json.dumps() per convertire l'input in una stringa JSON.
  3. Impostare l'indentazione al livello specificato se il flag compatto è False, altrimenti non usare indentazione.
  4. 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.
  5. 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