JSON ( Java Script Objet Nottaison) est un format de données utilisé pour représenter des données structurées.

Le format JSON a été à l’origine inspiré de la syntaxe de JavaScript (un langage de programmation utilisé pour le développement Web). En fait, On l’utilise souvent pour stocker et échanger des données (développement Web) ainsi que pour stocker les configurations et les paramètres dans des fichiers.

JSON

Travailler avec des données json en Python est très facile. Python possède deux types de données qui représentent un outil parfait pour travailler avec JSON : les dictionnaires et les listes.

En fait, JSON est essentiellement utilisé pour l’encodage et le décodage des données. Le processus de codage des données est appelé sérialisation car il implique la conversion des données en une série d’octets qui peuvent être stockés et transmis entre les serveurs et l’application Web. Quant au terme utilisé pour le décodage, est la désérialisation.

Voyons à présent des données json et leurs équivalents en Python.

JSONPython
trueTrue
falseFalse
stringstr
numberint, float
arraylist
objectdict
nullNone

Lire un fichier JSON

Pour lire un fichier JSON en Python, vous pouvez utiliser json.load(). Cette méthode prend comme paramètre l’objet fichier que vous souhaitez lire.

Dans votre répertoire de travail créez un fichier appelé employee.json avec le contenu suivant :

{"nom": "Adrien", "id": 1, "admis": true}

Votre code Python sera le suivant :

import json

with open('data.json') as mon_fichier:
    data = json.load(mon_fichier)

print(data)

L’exécution du code.

{'nom': 'Adrien', 'id': 1, 'admis': True}

Dans ce code, nous importons d’abord la bibliothèque json. Ensuite, nous avons utilisé l’instruction with pour lire notre fichier data.json. Nous utilisons la méthode json.load() pour convertir le contenu de notre fichier, stocké dans la variable mon_fichier, en un dictionnaire. Ensuite, nous affichons la valeur de notre dictionnaire.

Écrire des données json dans un fichier

Vous pouvez utiliser la méthode json.dump() pour écrire du JSON dans un fichier avec Python.

La méthode json.dump() accepte deux paramètres : le dictionnaire que vous souhaitez écrire dans un fichier et l’objet fichier qui contiendra votre dictionnaire.

Supposons que nous voulions stocker les données en tant que valeur JSON dans un fichier. Le nom de ce fichier sera data.json. Nous pourrions le faire en utilisant le code suivant :

import json

employee = {
	"nom": "Marie Richardson",
	"id": 1,
	"recrutement": True,
	"department": "Ventes"
}

with open('data.json', 'w') as mon_fichier:
	json.dump(employee, mon_fichier)

Exécutez votre code Python.

Tout d’abord, nous importons le module json dans notre programme. Ensuite, nous déclarons une variable qui stocke des informations sur Marie Richardson sous forme d’un dictionnaire Python.

Ensuite, nous utilisons une instruction with avec le mode w pour l’écriture. Nous utilisons ensuite json.dump() pour convertir notre dictionnaire employee en une chaîne JSON et l’enregistrer dans notre objet mon_fichier.

Lorsque ce programme est exécuté, le contenu de notre dictionnaire employee est écrit dans le fichier data.json. Le contenu final de ce fichier est:

{"nom": "Marie Richardson", "id": 1, "recrutement": true, "department": "Ventes"}

Lire et convertir un fichier JSON

Toujours dans le fichier data.json copiez le contenu suivant, qui est un objet unique avec trois paires nom:valeur.

{
    "a": 21,
    "b": 42,
    "c": 73
}

Toutefois, vous allez remarquer que ce code ressemble beaucoup à un dictionnaire Python.

Nous allons convetir ce contenu en un objet Python, afin que nous puissions accéder aux éléments et aux paires clé: valeur.

import json

fileObject = open("data.json", "r")
jsonContent = fileObject.read()
obj_python = json.loads(jsonContent)
print(obj_python)
print(obj_python['a'])
print(obj_python['b'])
print(obj_python['c'])

print(type(obj_python))

L’exécution du code.

{'a': 21, 'b': 42, 'c': 73}
21
42
73
<class 'dict'>

Prenon un autre exemple, mais cette fois les données JSON seront un tableau d’objets.

import json

fileObject = open("data.json", "r")
jsonContent = fileObject.read()
aList = json.loads(jsonContent)
print(aList[0])
print(aList[0]['c'])

fileObject.close()

L’exécution du code.

{'a': 85, 'b': 71, 'c': 39}
39

Comme vous pouvez le constater, la conversion d’un objet JSON en un dictionnaire Python, nous a permis de récupérer les valeurs des clés. De plus, la conversion d’un array(tableau) JSON en une liste Python, nous a permis de récupérer les éléments en utilisant l’indice.

Convertir des données Python en données json

Prenons une liste Python avec des nombres et convertissons-la en une chaîne JSON.

import json

aList = [41, 58, 63]
jsonStr = json.dumps(aList)
print(jsonStr)
print(type(jsonStr))

Exécution du code.

[41, 58, 63]
<class 'str'>

De plus, nous pouvons convertir une liste de dictionnaires Python en JSON.

import json

aList = [{'a':1, 'b':2}, {'c':3, 'd':4}]
jsonStr = json.dumps(aList)
print(jsonStr)

Exécution du code.

[{"a": 1, "b": 2}, {"c": 3, "d": 4}]

Ou encore, convertir une liste de listes Python en JSON.

import json

aList = [[{'a':1, 'b':2}], [{'c':3, 'd':4}]]
jsonStr = json.dumps(aList)
print(jsonStr)

Exécution du code.

[[{"a": 1, "b": 2}], [{"c": 3, "d": 4}]]

Écrire des données json dans un fichier

Nous allons convertir un dictionnaire Python en chaîne JSON et écrire cette chaîne dans un fichier nommé data.json.

import json

aDict = {"a":54, "b":87}
jsonString = json.dumps(aDict)
jsonFile = open("data.json", "w")
jsonFile.write(jsonString)
jsonFile.close()

Lorsque vous exécutez le code, un fichier data.json sera créé dans le répertoire de travail actuel.

Le module json de Python vous permet de lire et de manipuler des données JSON.

En fait, en l’utilisant vous pouvez :

-Lire des données JSON à partir d’un fichier.
-Convertir un dictionnaire Python en JSON.
-Convertir des données JSON en dictionnaire.
-Ecrire une chaîne JSON dans un fichier.

Catégories : Les modules Python

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *