Comment intégrer une syntaxe Json en Python

Table des matières

Introduction

Initiation à la syntaxe JSON

Utilisation

Structures de données

Structure des données

Types de données

Utilisation de la syntaxe JSON sur Python

Exemple de la syntaxe JSON

Utilisation sur Python

La désérialisation

Exemple

Convertir de Python en JSON

Exemple

Personnalisation

Affichage des caractères ascii

Exemple

Utilisation des retraits

Exemple

Ordonner le résultat

Exemple

Exercice d’application

Exercice

Solution

Question 1

Question 2

Question 3

Conclusion

Introduction :

JSON « JavaScript Object Notation en anglais » est un format utilisé généralement dans l’échange et le stockage des données et d’informations, et les représente sous une syntaxe basée sur le langage JavaScript.

Ce format détient plusieurs avantages qui le rend si populaire tel que la simplicité de son utilisation, et sa lisibilité.

En outre, Python supporte la syntaxe JSON, que ce soit en sérialisation des objets (convertir des objets en Python à des objets en JSON), ou bien, en dé-sérialisation des objets (convertir des objets en JSON à des objets en Python).

Sur ce tutoriel, on introduira une brève initiation à la syntaxe JSON, et par la suite, on verra comment le manipuler en utilisant Python tout en intégrant des exemples.

Initiation à la syntaxe JSON :

Utilisation :

JSON a pour but de stocker et transférer des données, pour enfin l’utiliser dans de différentes APIs (interface de programmation d'application) et bases de données.

Son utilisation est populaire au sein de grandes entreprises tel que YouTube, Twitter, Google Maps, NASA etc.… afin de gérer les données des comptes, recherches, des vidéos…

Structures de données :

Structure des données :

Les données sur JSON s’organisent sous forme d’une liste ordonnée contenant des valeurs, ou bien, sous forme d’un ensemble de paires  : .

Types de données :

Basée sur la syntaxe du langage JavaScript, La syntaxe JSON supporte 6 types de données :

  • Les chaines de caractères : présentés d’une façon similaire à Python.
  • Les nombres : JSON supporte les nombres que ça soit des entiers ou des flottants.
  • Les booléens : « true » et « false ».
  • Le type « null » : équivalent à « None » sur Python, ce type représente une valeur vide.
  • Les tableaux.
  • Les objets.

Utilisation de la syntaxe JSON sur Python :

Afin d’utiliser la syntaxe JSON sur Python, il est indispensable d’importer la librairie ‘json’ intégrée sur Python pour avoir accès à ses fonctionnalités :

  • Syntaxe :

# Importation du module 'json' :
import json


Exemple de la syntaxe JSON :

{
"Société" : "Asus",
"Siège social" : "Taiwan",
"année de création" : 1989,
"Production" : ["Cartes mères", "Cartes graphiques", "Smartphones", "Serveurs", "Ordinateur de bureau", "Ordinateurs portables"],
"produits ordinateurs portables" : [
{
"ID" : "7LF98FF",
"Processeur" : "intel core i7-9750",
"RAM" : 8.0,
"Caméra" : false,
"USB Type C" : true
},
{
"ID" : "ABC54CC",
"Processeur" : "intel core i5-9750",
"RAM" : 4.0,
"Caméra" : true,
"USB Type C" : false
}
]
}

Utilisation sur Python :

Dans cette partie on va se concentrer sur deux termes qui sont :

  • La sérialisation : qui représente la conversion d’une syntaxe en Python à une syntaxe JSON.
  • La dé-sérialisation : qui représente la conversion d’une syntaxe JSON à une syntaxe en Python.

La dé-sérialisation :

Afin de convertir une syntaxe JSON à une syntaxe en Python, on utilise la fonction load() pour convertir les fichiers, et loads() pour convertir une simple syntaxe tel qu’il est représenté sur l’exemple suivant :

Exemple :

Syntaxe :

Importation du module 'json' :
import json
# Des exemples de la syntaxe JSON :
exemple1_json = '{ "prénom":"Alex", "age":24, "adresse":"Ville1"}'
exemple2_json = '["élément1", "élément2", "élément3"]'
exemple3_json = '95.26'
exemple4_json = '"Bonjour"'
exemple5_json = 'true'
exemple6_json = 'null'
# Convertir les exemples en Python : :
exemple1_py = json.loads(exemple1_json)
exemple2_py = json.loads(exemple2_json)
exemple3_py = json.loads(exemple3_json)
exemple4_py = json.loads(exemple4_json)
exemple5_py = json.loads(exemple5_json)
exemple6_py = json.loads(exemple6_json)
# le résultat de la conversion :
print("exemple 1 : ", exemple1_py)
print("exemple 2 : ", exemple2_py)
print("exemple 3 : ", exemple3_py)
print("exemple 4 : ", exemple4_py)
print("exemple 5 : ", exemple5_py)
print("exemple 6 : ", exemple6_py)
# les types de données converties sur Python :
print("le type de l'exemple 1 : ", type(exemple1_py))
print("le type de l'exemple 2 : ", type(exemple2_py))
print("le type de l'exemple 3 : ", type(exemple3_py))
print("le type de l'exemple 4 : ", type(exemple4_py))
print("le type de l'exemple 5 : ", type(exemple5_py))
print("le type de l'exemple 6 : ", type(exemple6_py))

Résultat d’exécution : 

Convertir de Python en JSON :

Afin de convertir une syntaxe JSON à une syntaxe en Python, on utilise la fonction dump() pour convertir les fichiers, et dumps() pour convertir une simple syntaxe tel qu’il est représenté sur l’exemple suivant :

Exemple :

Syntaxe :

# Importation du module 'json' :
import json
# Des exemples de la syntaxe en Python :
exemple1_py = { "prénom":"Alex", "age":24, "adresse":"Ville1"}
exemple2_py = ['élément1', 'élément2', 'élément3']
exemple3_py = 95.26
exemple4_py = "Bonjour"
exemple5_py = True
exemple6_py = None
# Convertir les exemples en JSON : :
exemple1_json = json.dumps(exemple1_py, ensure_ascii = False)
exemple2_json = json.dumps(exemple2_py, ensure_ascii = False)
exemple3_json = json.dumps(exemple3_py)
exemple4_json = json.dumps(exemple4_py)
exemple5_json = json.dumps(exemple5_py)
exemple6_json = json.dumps(exemple6_py)
# le résultat de la conversion :
print("exemple 1 : ", exemple1_json)
print("exemple 2 : ", exemple2_json)
print("exemple 3 : ", exemple3_json)
print("exemple 4 : ", exemple4_json)
print("exemple 5 : ", exemple5_json)
print("exemple 6 : ", exemple6_json)

Résultat d’exécution :

Personnalisation :

Afin de simplifier la lisibilité d’une syntaxe JSON, il existe quelques options afin de personnaliser son affichage.

Affichage des caractères ascii :

Afin de pouvoir intégrer des caractères tel que « é », « î », « ö » etc…. On utilise l’option exprimée dans l’exemple précèdent ensure_ascii en lui attribuant la valeur False.

Exemple :

Syntaxe :

# Importation du module 'json' :
import json
# Création des données en Python :
données = {
"Société" : "Asus",
"Siège social" : "Taiwan",
"année de création" : 1989,
"Production" : ["Cartes mères", "Cartes graphiques", "Smartphones", "Serveurs", "Ordinateur de bureau", "Ordinateurs portables"],
"produits ordinateurs portables" : [
{
"ID" : "7LF98FF",
"Processeur" : "intel core i7-9750",
"RAM" : 8.0,
"Caméra" : False,
"USB Type C" : True
},
{
"ID" : "ABC54CC",
"Processeur" : "intel core i5-9750",
"RAM" : 4.0,
"Caméra" : True,
"USB Type C" : False
}
]
}
# Affichage des données en JSON :
print(json.dumps(données, ensure_ascii = False))

Résultat d’exécution :

Utilisation des retraits :

On remarque que dans l’exemple précèdent, les données sont représentées de façon directe. L’option indent permet de caractériser le retrait et le retour à la ligne dans l’affichage du résultat ce qui rend sa lisibilité plus simple.

Exemple :

Syntaxe :

# Importation du module 'json' :
import json
# Création des données en Python :
données = {
"Société" : "Asus",
"Siège social" : "Taiwan",
"année de création" : 1989,
"Production" : ["Cartes mères", "Cartes graphiques", "Smartphones", "Serveurs", "Ordinateur de bureau", "Ordinateurs portables"],
"produits ordinateurs portables" : [
{
"ID" : "7LF98FF",
"Processeur" : "intel core i7-9750",
"RAM" : 8.0,
"Caméra" : False,
"USB Type C" : True
},
{
"ID" : "ABC54CC",
"Processeur" : "intel core i5-9750",
"RAM" : 4.0,
"Caméra" : True,
"USB Type C" : False
}
]
}
# Affichage des données en JSON :
print(json.dumps(données, ensure_ascii = False, indent = 4))

Résultat d’exécution :

Ordonner le résultat :

L’option sort_keys permet d’ordonner les clés dans le résultat en l’attribuant la valeur True .

Exemple :

Syntaxe :

# Importation du module 'json' :
import json
# Création des données en Python :
données = {
"Société" : "Asus",
"Siège social" : "Taiwan",
"année de création" : 1989,
"Production" : ["Cartes mères", "Cartes graphiques", "Smartphones", "Serveurs", "Ordinateur de bureau", "Ordinateurs portables"],
"produits ordinateurs portables" : [
{
"ID" : "7LF98FF",
"Processeur" : "intel core i7-9750",
"RAM" : 8.0,
"Caméra" : False,
"USB Type C" : True
},
{
"ID" : "ABC54CC",
"Processeur" : "intel core i5-9750",
"RAM" : 4.0,
"Caméra" : True,
"USB Type C" : False
}
]
}
# Affichage des données en JSON :
print(json.dumps(données, ensure_ascii = False, indent = 4, sort_keys = True))

Résultat d’exécution :

Exercices d’application :

Exercice :

En ayant accès à des données en Python, réalisez une conversion de la syntaxe suivante en JSON :

données ={« Nom » : « Sam », « Prénom » : « Alex », « Année de naissance » : 1989, « loisirs » : [« basketball », « jeux vidéo », « natation »], « Adresse » : « Ville 1, rue 5, étage 3, apt 2 », « Mariage » : True, « Divorce » : False, « Enfants » : enfants}

Avec la variable enfants qui a comme valeurs :

enfants = [{« Nom » : « Sam », « Prénom » : « Merianna », « Année de naissance » : 2018},{« Nom » : « Sam », « Prénom » : « Hugo », « Année de naissance » : 2020} ]

  1. En utilisant la fonction dumps(), réalisez une conversion du dictionnaire « données » en JSON.
  2. Personnalisez l’affichage des données, en mettant des retraits et en affichant les caractères ascii.
  3. Affichez le résultat en ordre alphabétique des clés du dictionnaire.

Solution :

Question 1 :

Syntaxe :

import json
enfants = [{"Nom" : "Sam", "Prénom" : "Merianna", "Année de naissance" : 2018},{"Nom" : "Sam", "Prénom" : "Hugo", "Année de naissance" : 2020} ]
données ={"Nom" : "Sam", "Prénom" : "Alex", "Année de naissance" : 1989, "loisirs" : ["basketball", "jeux vidéo", "natation"], "Adresse" : "Ville 1, rue 5, étage 3, apt 2", "Mariage" : True, "Divorce" : False, "Enfants" : enfants}
données_json = json.dumps(données)
print(données_json)

Résultat d’exécution : 

Question 2 :

Syntaxe :

import json
enfants = [{"Nom" : "Sam", "Prénom" : "Merianna", "Année de naissance" : 2018},{"Nom" : "Sam", "Prénom" : "Hugo", "Année de naissance" : 2020} ]
données ={"Nom" : "Sam", "Prénom" : "Alex", "Année de naissance" : 1989, "loisirs" : ["basketball", "jeux vidéo", "natation"], "Adresse" : "Ville 1, rue 5, étage 3, apt 2", "Mariage" : True, "Divorce" : False, "Enfants" : enfants}
données_json = json.dumps(données, ensure_ascii = False, indent = 5)
print(données_json)

Résultat d’exécution : 

Question 3 :

Syntaxe :

import json
enfants = [{"Nom" : "Sam", "Prénom" : "Merianna", "Année de naissance" : 2018},{"Nom" : "Sam", "Prénom" : "Hugo", "Année de naissance" : 2020} ]
données ={"Nom" : "Sam", "Prénom" : "Alex", "Année de naissance" : 1989, "loisirs" : ["basketball", "jeux vidéo", "natation"], "Adresse" : "Ville 1, rue 5, étage 3, apt 2", "Mariage" : True, "Divorce" : False, "Enfants" : enfants}
données_json = json.dumps(données, ensure_ascii = False, indent = 5, sort_keys = True)
print(données_json)

Résultat d’exécution :

Conclusion :

Dans ce tutoriel, on a introduit une brève description sur la syntaxe JSON et son utilité, ainsi que son rapport et son utilisation sur Python. Bien que les exemples avec lesquels on a travaillé ici sont basiques et simples, ils illustrent le procédé général du travail que vous pourrez appliquer en utilisant ce format.

Bien qu’il existe d’autres formats également intéressants à découvrir tel que XML qui est plutôt proche à la syntaxe HTML, la syntaxe JSON semble être la plus adéquate pour un fan de Python, vu la similarité des leurs syntaxes. En espèrent que ce tutoriel vous a plu et vous a aider à découvrir de nouvelles fonctionnalité sur Python. Bonne chance à vous !

Article publié le 21 Octobre 2020par Ismail BOUZIANE