0Pricing
Python Academy · Lezione

Codifica e decodifica JSON

Utilizzi json.loads, json.dumps e json.load/dump per l'I/O JSON.

Codifica e decodifica JSON è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Introduzione

Il modulo json di Python converte oggetti Python in stringhe o file JSON e viceversa, tramite funzioni semplici e coerenti.

json.dumps()

json.dumps(obj) serializza un oggetto Python in una stringa JSON. indent=2 lo formatta in modo leggibile.
import json
d = {'name': 'Alice', 'age': 30, 'active': True}
print(json.dumps(d, indent=2))

json.loads()

json.loads(s) analizza una stringa JSON e la trasforma in un oggetto Python. Gli oggetti JSON diventano dict, gli array diventano liste.
import json
s = '{"name": "Alice", "scores": [90, 85]}'
data = json.loads(s)
print(type(data), data['name'])

json.dump() su file

json.dump(obj, file_object) serializza direttamente in un file. Non è necessario acquisire prima una stringa.
import json, tempfile, os
tmp = tempfile.mktemp(suffix='.json')
with open(tmp, 'w') as f:
    json.dump({'x': 1}, f, indent=2)
print(open(tmp).read())
os.unlink(tmp)

json.load() da file

json.load(file_object) analizza JSON direttamente da un oggetto file aperto.
import json, io
buf = io.StringIO('{"key": "value"}')
data = json.load(buf)
print(data)

Mappatura dei tipi JSON

Oggetto JSON→dict. array→list. stringa→str. numero→int/float. true/false→True/False. null→None.
import json
s = '[1, "two", true, null, {"a": 3.14}]'
print(json.loads(s))

Tipi non serializzabili

datetime, set e bytes non sono serializzabili in JSON. Fornisca una funzione default= oppure una sottoclasse di JSONEncoder.
import json
from datetime import datetime
def default(obj):
    if isinstance(obj, datetime):
        return obj.isoformat()
    raise TypeError(f'{type(obj)} not serializable')
print(json.dumps({'ts': datetime.now()}, default=default))

sort_keys e separators

sort_keys=True ordina le chiavi dei dict. separators=(',', ':') rimuove gli spazi bianchi per ottenere un output compatto.
import json
d = {'z': 3, 'a': 1, 'm': 2}
print(json.dumps(d, sort_keys=True, separators=(',', ':')))

Formattazione leggibile

json.dumps(obj, indent=4, ensure_ascii=False) produce JSON leggibile, mantenendo i caratteri Unicode.
import json
d = {'name': 'Mehmet', 'city': 'Istanbul'}
print(json.dumps(d, indent=4, ensure_ascii=False))

JSONDecodeError

json.loads(invalid) genera json.JSONDecodeError. Racchiuda sempre l'analisi dell'input dell'utente in try/except.
import json
try:
    json.loads('{bad json}')
except json.JSONDecodeError as e:
    print(f'Parse error: {e}')

Aggiornamento dei file JSON

Leggere → modificare → riscrivere: è il pattern standard per aggiornare un file di configurazione JSON.
import json, io
buf = io.StringIO('{"count": 5}')
data = json.load(buf)
data['count'] += 1
print(json.dumps(data))

Controllo rapido

Quale funzione analizza una stringa JSON trasformandola in un oggetto Python?

Riepilogo

json.dumps/loads per le stringhe, json.dump/load per i file. Tipi: object→dict, array→list, null→None. Serializzazione personalizzata tramite una funzione default=.

Continui

Continui così! Passi alla lezione successiva.

Domande Frequenti

La lezione «Codifica e decodifica JSON» è gratuita?

Sì — il testo completo di «Codifica e decodifica JSON» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Codifica e decodifica JSON»?

Utilizzi json.loads, json.dumps e json.load/dump per l'I/O JSON. Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Codifica e decodifica JSON»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Codifica e decodifica JSON
  2. Gestione delle strutture JSON annidate
  3. Lettura dei CSV con csv.reader
  4. Scrittura dei CSV con csv.DictWriter
← Torna a Python Academy