Comment lire et analyser un fichier JSON en Python
Apprenez à lire, analyser et charger des fichiers JSON en Python à l'aide du module json intégré. Maîtrisez la conversion de chaînes JSON en dictionnaires et vice versa.
Aperçu
JSON (JavaScript Object Notation) est le format de données le plus populaire pour les API, les fichiers de configuration et le stockage de données. Python est livré avec un module « json » intégré qui rend incroyablement simple la lecture, l'analyse et l'écriture de données JSON. Étant donné que les objets JSON correspondent parfaitement aux dictionnaires Python et que les tableaux JSON correspondent aux listes Python, travailler avec JSON semble natif.
Pour lire JSON à partir d'un fichier externe, vous utilisez la fonction `json.load()`, qui analyse un flux de fichier et traduit les structures JSON en types de données Python. Si les données JSON sont déjà chargées en mémoire sous forme de chaîne, vous utilisez plutôt la fonction `json.loads()` (le « s » signifie chaîne). La sélection de la fonction correcte évite les plantages de l’analyseur.
Lorsque vous travaillez avec JSON, il est recommandé de gérer les erreurs d’encodage et de formatage potentielles. L'utilisation de `encoding="utf-8"` dans l'instruction `open()` protège votre script contre l'échec sur les caractères spéciaux. Envelopper les opérations sur les fichiers dans un bloc « try-sauf » capturant « json.JSONDecodeError » garantit que votre application se dégrade gracieusement si le fichier JSON est mal formé.
Sortie de code et d'exécution
Ce code montre l'écriture d'un exemple de fichier JSON, sa lecture et son analyse dans un dictionnaire Python, ainsi que la gestion d'une chaîne JSON.
import json
# Let's write a mock JSON file first
sample_data = {
"user": "developer123",
"skills": ["python", "javascript", "sql"],
"active": True
}
with open("data.json", "w", encoding="utf-8") as f:
json.dump(sample_data, f, indent=4)
# 1. Reading from a JSON file (using json.load)
with open("data.json", "r", encoding="utf-8") as file:
data_from_file = json.load(file)
print("File Content type:", type(data_from_file).__name__)
print("User skill list:", data_from_file["skills"])
# 2. Reading from a JSON string (using json.loads)
json_string = '{"host": "localhost", "port": 5432, "ssl": false}'
data_from_str = json.loads(json_string)
print("\nString Content type:", type(data_from_str).__name__)
print("Database host:", data_from_str["host"])File Content type: dict
User skill list: ['python', 'javascript', 'sql']
String Content type: dict
Database host: localhostMise en œuvre étape par étape
- Importez le module json intégré dans votre script.
- Ouvrez le fichier JSON en utilisant with open("filename.json", "r", encoding="utf-8") comme fichier.
- Transmettez l'objet fichier à json.load(file) pour analyser le contenu dans un dictionnaire Python.
- Utilisez json.loads(string_data) si vous devez analyser une chaîne JSON brute déjà chargée en mémoire.
Foire aux questions
Quelle est la différence entre json.load() et json.loads() ?
json.load() accepte un objet stream de type fichier (lecture à partir du disque), tandis que json.loads() accepte un objet chaîne standard ou bytes contenant du contenu JSON (lecture à partir de la mémoire).
Comment gérer les erreurs de sérialisation JSON pour les classes personnalisées ?
Le module json de Python ne peut pas sérialiser les instances de classe personnalisées par défaut. Vous devez fournir une classe d'encodeur personnalisée étendant json.JSONEncoder ou extraire d'abord les attributs de l'instance dans un dictionnaire à l'aide d'une méthode d'assistance.
Sujets connexes
Apprenez à lire des fichiers en Python. Maîtrisez l'instruction with open, readline, readlines et gérez en toute sécurité les exceptions de fichiers.
Comment écrire dans un fichier en PythonApprenez à écrire du texte dans des fichiers en Python. Maîtrisez la différence entre les modes d'écriture ("w") et d'ajout ("a") avec des gestionnaires de contexte sécurisés.
Comment créer un dictionnaire en PythonApprenez à créer un dictionnaire en Python. Comprenez la syntaxe littérale, le constructeur de dict, les compréhensions de dict et les initialiseurs clés-valeurs.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
E/S de fichier Python
Apprenez à lire et écrire des fichiers en Python. Maîtrisez open(), read(), write() et les gestionnaires de contexte pour gérer les opérations sur les fichiers en toute sécurité sans fuite de ressources.
Aide-mémoire sur les opérations de fichiers Python
Référence rapide pour lire et écrire des fichiers en Python. Maîtrisez les modes ouverts, les gestionnaires de contexte et la lecture ligne par ligne.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.