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) vers object (JSON)
  • liste (Python) vers tableau (JSON)
  • str (Python) vers string (JSON)
  • int, float (Python) vers number (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.