Écrire JSON dans un fichier en Python
JSON est un format de fichier léger et lisible par l’homme qui est largement utilisé dans l’industrie. JSON signifie JavaScript Object Notation
. Comme son nom l’indique, JSON est très populaire parmi les développeurs Web et est fortement utilisé dans les applications Web pour envoyer et récupérer des données à partir du serveur ou d’autres applications.
Python est livré avec de nombreux packages ou modules intégrés et dispose de nombreux modules externes disponibles sur Internet pour notre utilisation. Fait intéressant, il dispose également d’un module intégré, json
, pour gérer les données JSON.
En Python, le JSON peut être représenté de deux manières. Tout d’abord, sous forme de chaînes. Une chaîne JSON ressemble à ceci.
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
Lorsque vous représentez JSON sous forme de chaîne, assurez-vous de n’utiliser que des guillemets doubles (""
) pour encapsuler les clés et les valeurs de chaîne. JSON ne prend pas en charge la citation unique et renvoie une erreur si la citation unique est utilisée.
La deuxième méthode consiste à utiliser l’objet Python ou connu sous le nom de dictionnaire Python. Il a une syntaxe similaire à celle d’un JSON.
La représentation du JSON sous la forme d’un dictionnaire python ressemblerait à ceci.
jsonObject = {
"name": "DelftStack",
"email": "DelftStack@domain.com",
"age": 20,
"country": "Netherlands",
"city": "Delft",
}
Encore une fois, assurez-vous de n’utiliser que des guillemets doubles.
Ecrire du JSON dans un fichier avec le module json
en Python
Supposons que vous ayez une variable qui stocke un JSON sous la forme d’une chaîne. Donc, pour l’écrire dans un fichier JSON, vous pouvez utiliser le code suivant.
import json
fileName = "my-data.json"
jsonString = '{ "name": "DelftStack", "email": "DelftStack@domain.com", "age": 20, "country": "Netherlands", "city": "Delft"}'
jsonString = json.loads(jsonString)
file = open(fileName, "w")
json.dump(jsonString, file)
file.close()
Tout d’abord, nous avons importé le module json
. Ensuite, nous avons stocké le nom du fichier JSON et la chaîne JSON elle-même dans deux variables. Ensuite, nous créons et ouvrons un nouveau fichier avec le nom que nous avons choisi en mode write
.
Ensuite, nous utilisons la fonction load
du module json
pour convertir la chaîne JSON en dictionnaire python pour l’écrire dans un fichier. La fonction accepte une chaîne JSON valide et la convertit en dictionnaire Python.
Notez que si une chaîne invalide est fournie à cette fonction, elle renvoie une erreur
json.decoder.JSONDecodeError
. Donc, assurez-vous de passer une chaîne correcte ou utilisez peut-être un bloctry-except-finally
pour la gestion des erreurs.
Ensuite, nous utilisons la méthode dump()
que le module json
nous fournit. Cette méthode accepte un dictionnaire python et un descripteur de fichier comme paramètres et écrit les données du dictionnaire dans le fichier.
La méthode dump()
fonctionne si et seulement si le fichier n’est pas ouvert dans un format binaire, c’est-à-dire que "wb"
et "rb"
ne fonctionneront pas et conduiront à une TypeError
.
Enfin, nous fermons le fichier et le programme se ferme. Un fichier JSON du nom que vous avez défini dans le programme sera créé dans le répertoire courant.
Si un fichier avec le même nom et la même extension existe dans le répertoire de travail, le contenu de ce fichier sera écrasé.
Maintenant, supposons que vous souhaitiez écrire un objet Python ou un dictionnaire Python dans un fichier JSON. Dans ce cas, reportez-vous à l’extrait de code suivant.
import json
fileName = "my-data.json"
jsonObject = {
"name": "DelftStack",
"email": "DelftStack@domain.com",
"age": 20,
"country": "Netherlands",
"city": "Delft",
}
file = open(fileName, "w")
json.dump(jsonObject, file)
file.close()
Dans ce cas, nous avons déjà l’objet ou le dictionnaire python, et le dump()
, comme expliqué ci-dessus, accepte un dictionnaire comme paramètre et l’écrit dans le descripteur de fichier. Ainsi, nous ouvrons un fichier en mode écriture, écrivons les données dans le fichier en utilisant la méthode dump()
, et fermons le fichier.