Post

JSON Sicuro in Python: load() e dump() Senza Sorprese

JSON Sicuro in Python: load() e dump() Senza Sorprese

Quando usarlo

Ogni volta che devi salvare configurazioni, scambiare dati con API, o persistere strutture dati semplici. JSON è il formato standard per lo scambio dati, e gestirlo correttamente evita errori frustranti e perdite di dati durante il salvataggio e caricamento.

Snippet

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import json
from pathlib import Path

# Scrittura sicura
dati = {"nome": "Marco", "età": 30, "skills": ["Python", "SQL"]}
file_config = Path("config.json")

with open(file_config, 'w', encoding='utf-8') as f:
    json.dump(dati, f, ensure_ascii=False, indent=2)

# Lettura con gestione errori
try:
    with open(file_config, 'r', encoding='utf-8') as f:
        config = json.load(f)
except (FileNotFoundError, json.JSONDecodeError) as e:
    config = {}  # valore predefinito

Perché funziona

json.dump() e json.load() lavorano direttamente con file, evitando di caricare tutto in memoria. L’encoding UTF-8 gestisce caratteri speciali, ensure_ascii=False preserva i caratteri non-ASCII, e indent=2 rende il file leggibile. La gestione delle eccezioni previene crash del programma.

Attenzione a…

  • Sempre specificare encoding='utf-8' per evitare problemi con caratteri speciali
  • JSON non supporta commenti, date native, o tuple (diventano liste)
  • Non usare json.loads(json.dumps()) per copiare oggetti - usa copy.deepcopy()

Vedi anche

This post is licensed under CC BY 4.0 by the author.