“J’en fais quoi du fichier JSON en python ? Et comment je peux sauvegarder mon dictionnaire python en JSON ?”
Définition
Pour bien appréhender la technique il faut déjà comprendre le concept derrière.
La sérialisation des données c’est le traitement qui permet de les convertir en une nouvelle structure de données, un dictionnaire, pour ensuite, par exemple, le sauvegarder en JSON.
La désérialisation, c’est le processus inverse, par exemple comment passer d’un fichier JSON à un objet python (dictionnaire) ou à un objet DataFrame en python. Pour ce dernier, on parle souvent “d’applatir” ces données.
La bibliothèque python intégrée : json
Python embarque avec lui une bibliothèque qui simplifie la gestion du format JSON.
Sérialisation en JSON
La sérialisation des données en python est possible en utilisant la fonction json.dumps(). Le résultat en sortie de cette fonction est une chaîne de caractères qui peut donc être inscrite dans un fichier.
import json
# Création d'un dictionnaire Python (et non JSON)
data = {
"name": "Dupont",
"age": 30,
"city": "Paris",
"children": ["Alice", "Bob"]
}
print(data)
# {'name': 'Dupont', 'age': 30, 'city': 'Paris', 'children': ['Alice', 'Bob']}
# Sérialisation en chaîne de caractères
json_str = json.dumps(data)
print(json_str)
# {"name": "Dupont", "age": 30, "city": "Paris", "children": ["Alice", "Bob"]}
Dans l’exemple ci-dessus, nous partons d’un objet Python : un dictionnaire.
C’est après l’utilisation de la fonction json.dumps() que la donnée est prête à être sauvegardée dans un JSON.
# Écriture de la chaîne de caractères dans un fichier JSON
with open('data.json', 'w') as file:
file.write(json_str)
Il est aussi possible d’utiliser directement la fonction json.dump() (et non json.dumps()) lors de l’écriture des données dans un fichier JSON.
# Écriture de la chaîne de caractères dans un fichier JSON
with open('data.json', 'w') as file:
json.dump(data, file)
Désérialisation à partir d’un JSON
Maintenant, on voudrait passer facilement d’un fichier JSON à un objet python. Dans notre cas, recréer le dictionnaire initial.
Pour ce faire, nous allons utiliser la fonction json.load() lors de la lecture du fichier JSON.
# Lecture d'un fichier JSON et conversion en objet Python
with open('data.json', 'r') as file:
data = json.load(file)
print(data)
# {'name': 'Dupont', 'age': 30, 'city': 'Paris', 'children': ['Alice', 'Bob']}
Parfois, nous avons déjà la chaîne de caractères au format JSON qui est dans le système, dans l’application python.
Dans ce cas, il est possible d’utiliser la fonction json.loads() (attention au “s” en plus) pour faire la conversion vers un objet python.
json_str = '{"nom": "Dupont", "âge": 30, "ville": "Paris", "enfants": ["Alice", "Bob"]}'
# Conversion d'un format de données JSON vers un objet Python
data = json.loads(json_str)
print(data)
# {'nom': 'Dupont', 'âge': 30, 'ville': 'Paris', 'enfants': ['Alice', 'Bob']}
Merci de votre lecture !