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 - usacopy.deepcopy()
Vedi anche
pickleper oggetti Python complessiconfigparserper file di configurazione- Documentazione JSON
This post is licensed under CC BY 4.0 by the author.