Travailler avec des données JSON en Python
JSON (JavaScript Object Notation) est un format de données léger utilisé pour l'échange de données entre un serveur et un client. Il est couramment utilisé dans les applications Web pour envoyer et recevoir des données. Python fournit un module intégré appelé json
qui facilite le travail avec les données JSON. Cet article vous guidera à travers les bases du travail avec les données JSON dans Python, notamment la lecture, l'écriture et la manipulation d'objets JSON.
Qu'est-ce que JSON ?
JSON est un format textuel facile à lire et à écrire pour les humains et les machines. Il se compose de paires clé-valeur, similaires aux dictionnaires Python. Un objet JSON typique ressemble à ceci:
{
"name": "Alice",
"age": 30,
"city": "New York",
"is_student": false,
"skills": ["Python", "JavaScript", "SQL"]
}
Importer le module JSON
Le module json
est inclus dans la bibliothèque standard de Python, vous n'avez donc rien à installer. Importez-le simplement au début de votre script:
import json
Lecture des données JSON
Vous pouvez lire des données JSON à partir d'une chaîne ou d'un fichier. La méthode json.loads()
est utilisée pour analyser les données JSON à partir d'une chaîne, tandis que json.load()
est utilisée pour lire les données JSON à partir d'un fichier.
Lecture de JSON à partir d'une chaîne
Pour lire du JSON à partir d'une chaîne, utilisez la méthode json.loads()
, qui convertit la chaîne JSON en un dictionnaire Python.
# Example of reading JSON from a string
json_string = '{"name": "Alice", "age": 30, "city": "New York"}'
data = json.loads(json_string)
print(data)
print(data['name']) # Output: Alice
Lire du JSON à partir d'un fichier
Pour lire les données JSON d'un fichier, utilisez la méthode json.load()
. Cette méthode lit le contenu d'un fichier et le convertit en dictionnaire Python.
# Example of reading JSON from a file
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
Écriture de données JSON
Vous pouvez écrire des données JSON dans une chaîne ou un fichier. La méthode json.dumps()
est utilisée pour convertir un objet Python en chaîne JSON, tandis que json.dump()
est utilisée pour écrire des données JSON dans un fichier.
Écriture de JSON dans une chaîne
Pour écrire du JSON dans une chaîne, utilisez la méthode json.dumps()
, qui convertit un dictionnaire Python en chaîne JSON.
# Example of writing JSON to a string
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
json_string = json.dumps(data)
print(json_string)
Écriture de JSON dans un fichier
Pour écrire des données JSON dans un fichier, utilisez la méthode json.dump()
. Cette méthode prend un objet Python et l'écrit dans un fichier au format JSON.
# Example of writing JSON to a file
data = {
"name": "Bob",
"age": 25,
"city": "Los Angeles"
}
with open('output.json', 'w') as file:
json.dump(data, file)
Impression soignée des données JSON
La méthode json.dumps()
possède plusieurs paramètres qui vous permettent de formater les données JSON pour une meilleure lisibilité. Le paramètre indent
spécifie le nombre d'espaces à utiliser pour l'indentation, tandis que le paramètre sort_keys
trie les clés dans la sortie.
# Example of pretty-printing JSON data
data = {
"name": "Charlie",
"age": 35,
"city": "Chicago"
}
json_string = json.dumps(data, indent=4, sort_keys=True)
print(json_string)
Conversion entre les types de données JSON et Python
Le module json
de Python peut gérer différents types de données et les convertir entre JSON et Python. Voici une référence rapide:
dict
(Python) versobject
(JSON)liste
(Python) verstableau
(JSON)str
(Python) versstring
(JSON)int
,float
(Python) versnumber
(JSON)Vrai
,Faux
(Python) àvrai
,faux
(JSON)Aucun
(Python) ànull
(JSON)
Gestion des erreurs JSON
Lorsque vous travaillez avec JSON, des erreurs peuvent survenir en raison d'un formatage incorrect ou de données inattendues. Le module json
génère des exceptions telles que JSONDecodeError
lorsqu'il rencontre de tels problèmes. Utilisez les blocs try
et except
pour gérer ces erreurs avec élégance.
# Handling JSON errors
json_string = '{"name": "Alice", "age": 30, "city": "New York"' # Missing closing brace
try:
data = json.loads(json_string)
except json.JSONDecodeError as e:
print(f"Error decoding JSON: {e}")
Conclusion
Travailler avec des données JSON est une compétence fondamentale pour les développeurs Python, en particulier dans le développement Web et la science des données. Le module json
fournit des méthodes faciles à utiliser pour lire, écrire et manipuler des données JSON. En maîtrisant ces techniques, vous pouvez gérer efficacement les données JSON dans vos applications Python.