OUJOOD.COM
Import du module json de python
Pour pouvoir utiliser JSON (chaîne de caractères ou fichier contenant un objet JSON), il suffit d'utiliser le module json de Python. Il faut importer le module avant de pouvoir l'utiliser comme le montre suit :import json
Analyser JSON en Python
Le module json permet d'analyser facilement les chaînes JSON et les fichiers contenant des objets JSON.Exemple : conversion de JSON en dict en Python
Vous pouvez analyser une chaîne JSON et la transformer en diction de python à l'aide de la méthode json.loads(). La méthode json.loads() retourne un dictionnaire.
#main.py
import json
personne = '{"nom": "Bakr", "langues": ["Anglais", "Français"]}'
personne_dict = json.loads(personne)
print( personne_dict)
print(f"Nom : {personne_dict['nom']}")
print(f"Langues : {personne_dict['langues']}")
La sortie du code cidessus sera comme suit:
{'nom': 'Bakr', 'langues': ['Anglais', 'Français']}
Nom : Bakr
Langues : ['Anglais', 'Français']
Ici, personne est une chaîne JSON, et personne_dict est un dictionnaire.Lecture de JSON à partir d'un fichier en utilisant Python
La désérialisation est l'inverse de la sérialisation, c'est-à-dire la conversion des objets JSON en objets Python respectifs.Pour lire un fichier contenant un objet JSON, il suffit d'utiliser la méthode json.load().
Supposons que vous ayez un fichier nommé personne.json qui contient un objet JSON.
#main.py
import json
with open('chemin d'acces du fichier/personne.json', 'r') as f:
data = json.load(f)
print(data)
Le code ci-dessus retourne ce qui suit:
{'nom': 'Bakr', 'languages': ['Anglais', 'Français']}
Dans ce cas, la fonction open() a été utilisée pour lire le fichier json. Puis, l'analyse du fichier est effectuée à l'aide de la méthode json.load() pour obtenir comme résultat un dictionnaire nommé data, que on a affiché à l'écran.Pour ceux qui ne savent pas comment lire et écrire des fichiers en Python,
nous vous recommandons de consulter :
Notre tutoriel sur le sujet ici
Conversion de Python en chaîne JSON
Pour convertir un dictionnaire en chaîne JSON, vous pouvez utiliser la méthode json.dumps().Exemple : Convertir un dictionnaire en JSON
import json
personne_dict = {"nom": "Bakr",
"age": 35,
"marié" : True,
"divorcé" : False,
"enfants" : ("Anne", "Sofie"),
"animaux de compagnie" : None,
"voitures" : [
{"modèle" : "BMW 230", "consomation" : 7.5},
{"modèle" : "Ford Edge", "consomation" : 10.1}
]
}
personne_json = json.dumps(personne_dict)
print(personne_json)
La sortie est:
{"nom": "Bakr", "age": 35, "mari\u00e9": true, "divorc\u00e9": false, "enfants": ["Anne", "Sofie"], "animaux de compagnie": null, "voitures": [{"mod\u00e8le": "BMW 230", "consomation": 7.5}, {"mod\u00e8le": "Ford Edge", "consomation": 10.1}]}
Formatage du résultat
Avec l'exemple ci-dessus, une chaîne JSON est imprimée, mais sa lecture n'est pas très facile, car elle ne contient ni indentations ni sauts de ligne.La méthode json.dumps() dispose de paramètres permettant de faciliter la lecture du résultat :
Exemple Utilisez le paramètre indentation pour définir le nombre d'indentations :
import json
personne_dict = {"nom": "Bakr",
"age": 35,
"statut" : "marié",
"enfants" : ("Anne", "Sofie"),
"animaux de compagnie" : None,
"voitures" : [
{"modèle" : "BMW 230", "consomation" : 7.5},
{"modèle" : "Ford Edge", "consomation" : 10.1}
]
}
personne_json = json.dumps(personne_dict, indent=4)
print(personne_json)
Le résultat est comme suit:
{
"nom": "Bakr",
"age": 35,
"statut" : "marié",
"enfants": [
"Anne",
"Sofie"
],
"animaux de compagnie": null,
"voitures": [
{
"modéle": "BMW 230",
"consomation": 7.5
},
{
"modéle": "Ford Edge",
"consomation": 10.1
}
]
}
Vous pouvez aussi définir les séparateurs, la valeur par défaut est (", ", " : "), ce qui signifie utiliser une virgule et un espace pour séparer chaque objet, et deux points et un espace pour séparer les clés des valeurs :Exemple Utilisez le paramètre separators pour modifier le séparateur par défaut :
import json
personne_dict = {"nom": "Bakr",
"age": 35,
"statut" : "marié",
"enfants" : ("Anne", "Sofie"),
"animaux de compagnie" : None,
"voitures" : [
{"modèle" : "BMW 230", "consomation" : 7.5},
{"modèle" : "Ford Edge", "consomation" : 10.1}
]
}
personne_json = json.dumps(personne_dict, indent=4, separators=(". ", " = "))
print(personne_json)
{
"nom" = "Bakr".
"age" = 35.
"statut" = "marié".
"enfants" = [
"Anne".
"Sofie"
].
"animaux de compagnie" = null.
"voitures" = [
{
"modéle" = "BMW 230".
"consomation" = 7.5
}.
{
"modéle" = "Ford Edge".
"consomation" = 10.1
}
]
}
Ordonner le résultat
La méthode json.dumps() possède des paramètres pour ordonner les clés dans le résultat :Exemple Utilisez le paramètre sort_keys pour spécifier si le résultat doit être trié ou non :
personne_json = json.dumps(personne_dict, indent=4, separators=(". ", " = "), sort_keys=True)
print(personne_json)
Le résultat sera comme suit :
{
"age" = 35.
"animaux de compagnie" = null.
"enfants" = [
"Anne".
"Sofie"
].
"nom" = "Bakr".
"statut" = "mari\u00e9".
"voitures" = [
{
"consomation" = 7.5.
"mod\u00e8le" = "BMW 230"
}.
{
"consomation" = 10.1.
"mod\u00e8le" = "Ford Edge"
}
]
}
Écriture de JSON dans un fichier avec Python
La sérialisation JSON fait référence à la transformation des données en une série d'octets (d'où sérialisation) pour être stockées ou transmises sur un réseau. Pour gérer le flux de données dans un fichier, la bibliothèque JSON de Python utilise la fonction dump() ou dumps() pour convertir les objets Python en leur objet JSON respectif, ce qui facilite l'écriture de données dans des fichiers.Voir les exemples suivants.
Méthode 1 : Écriture de JSON dans un fichier en Python à l'aide de json.dumps()
Comme nous l'avons vu ci-dessus le module JSON de Python possède une fonction appelée json.dumps() qui permet de convertir un dictionnaire en objet JSON. Elle prend deux paramètres :dictionnaire - le nom d'un dictionnaire qui doit être converti en un objet JSON. indent - définit le nombre d'unités pour l'indentation.
vous pouvez l'écrire dans un fichier à l'aide de la fonction "write".
import json
# Les données à écrire
dictionnaire = {
"nom": "bakr",
"age": 56,
"Nbr enfants": 2,
"phone": "9976770500"
}
# Sérialisation du json
json_object = json.dumps(dictionnaire , indent=4)
# Écriture dans le fichier exemple.json
with open("exemple.json", "w") as outfile:
outfile.write(json_object)
Dans cet exemple le dictionnaire python est transformé en json par la méthode dumps().Puis avec la méthode write() il est écrit dans le fichier exemple.json s’il existe, si le fichier json n’existe pas il sera créé.
Méthode 2 : Écriture de JSON dans un fichier avec le langage Python en utilisant la méthode json.dump()
L'utilisation de la méthode json.dump() est une autre façon d'écrire du JSON dans un fichier. Le module JSON possède la fonction "dump" qui écrit directement le dictionnaire dans un fichier sous forme de JSON, sans avoir besoin de le convertir en un objet JSON réel. Elle prend 2 paramètres :dictionnaire - le nom d'un dictionnaire qui doit être converti en un objet JSON. pointeur de fichier - pointeur du fichier ouvert en mode écriture ou ajout.
import json
# Les données à écrire
dictionnaire = {
"nom": "bakr",
"age": 56,
"Nbr enfants": 2,
"phone": "9976770500"
}
# Écriture dans le fichier exemple.json
with open("exemple.json", "w") as outfile:
json.dump(dictionnaire, outfile)