Analyse Python JSON : sérialisation et désérialisation
Apprenez à lire, écrire et analyser des données JSON en Python. Maîtrisez json.loads, json.dumps et personnalisez les encodeurs/décodeurs JSON.
Aperçu
JSON (JavaScript Object Notation) est le format léger d'échange de données qui domine les API Web, les configurations et les charges utiles de bases de données modernes. Étant donné que les structures JSON ressemblent à des dictionnaires et à des listes Python, la traduction entre eux est incroyablement transparente. Python est équipé d'un module « json » intégré, ce qui facilite l'analyse des chaînes JSON en objets Python et la reconversion des objets Python en chaînes JSON.
Le processus de traduction d'un objet Python (comme un dictionnaire) en une chaîne JSON brute est appelé sérialisation ou encodage. Ceci est géré par `json.dumps()` (pour les chaînes) et `json.dump()` (pour écrire directement dans un fichier). Vous pouvez contrôler les paramètres de formatage tels que « indent » pour embellir le JSON, ou « sort_keys » pour conserver les attributs classés par ordre alphabétique. À l'inverse, l'analyse d'une chaîne JSON dans un dictionnaire Python est appelée désérialisation, exécutée via `json.loads()` et `json.load()`.
Alors que les types Python standard tels que les chaînes, les nombres, les listes et les dictionnaires sont automatiquement sérialisés en JSON, ce n'est pas le cas des objets personnalisés (comme les classes ou les objets datetime). Tenter d'encoder directement un objet personnalisé générera une `TypeError`. Pour surmonter ce problème, les développeurs doivent créer une classe d'encodeur personnalisée qui hérite de « json.JSONEncoder » et remplacer la méthode « .default() » pour sérialiser les classes dans des dictionnaires lisibles. La maîtrise de la manipulation JSON est essentielle pour communiquer avec les services Web externes.
Sortie de code et d'exécution
Conversion d'un dictionnaire en chaîne JSON et analyse de celui-ci à l'aide de la bibliothèque json intégrée.
import json
# Python Dictionary representing a user profile
user_profile = {
"name": "Alex",
"is_premium": True,
"skills": ["Python", "Docker"],
"age": 28
}
# Serialize dictionary to JSON string
json_string = json.dumps(user_profile, indent=2)
print("--- JSON String ---")
print(json_string)
# Deserialize JSON string back to dictionary
parsed_dict = json.loads(json_string)
print("\n--- Parsed Python Dictionary ---")
print(f"Name: {parsed_dict['name']}")
print(f"First Skill: {parsed_dict['skills'][0]}")--- JSON String ---
{
"name": "Alex",
"is_premium": true,
"skills": [
"Python",
"Docker"
],
"age": 28
}
--- Parsed Python Dictionary ---
Name: Alex
First Skill: PythonMise en œuvre étape par étape
- Envoi de charges utiles et lecture de données à partir des API REST
- Stockage des préférences de configuration dans les fichiers settings.json
- Transmission de charges utiles structurées entre microservices
Foire aux questions
Quelle est la différence entre json.dump et json.dumps ?
json.dump (sans le « s ») écrit les données JSON directement dans un flux de fichiers. json.dumps (avec le « s ») sérialise les données dans une variable de chaîne Python.
Comment gérez-vous les erreurs de décodage JSON ?
Enveloppez votre code d'analyse dans un bloc try/sauf capturant 'json.JSONDecodeError' pour gérer avec élégance les chaînes JSON mal formées.
Sujets connexes
Maîtrisez les dictionnaires Python. Apprenez à stocker, récupérer et gérer les données des paires clé-valeur. Comprendre les performances et les meilleures pratiques pour les mappages.
E/S de fichier PythonApprenez à 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.
Python CSVApprenez à gérer les données CSV en Python. Maîtrisez csv.reader, csv.writer et DictReader/DictWriter pour une analyse efficace des tables.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
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.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
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.