oujood.com

Json dans python : Comment analyser, lire et écrire du JSON en Python

Dans ce tutoriel, vous apprendrez à analyser, lire et écrire du JSON en Python à l'aide d'exemples. Vous apprendrez également à convertir JSON en dict et à afficher les données qu'il contient.
JSON (JavaScript Object Notation) est un format de données populaire utilisé pour représenter des données structurées. Il est courant de transmettre et de recevoir des données entre un serveur et une application Web au format JSON.
En Python, JSON existe sous la forme d'une chaîne de caractères.

chercher |

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.

  Copier le code

#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.

  Copier le code

#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

  Copier le code

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 :

  Copier le code

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 :

  Copier le code

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 :

  Copier le code

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".

  Copier le code

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.

  Copier le code

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)


Voir aussi nos tutoriel :

Balise de déclaration de type  

Définit le type de document

border-left-color

Définit la couleur de la bordure gauche

Balise iframe

Définit un cadre en ligne