Comment lire et écrire des fichiers JSON dans Python

Comment lire et écrire des fichiers JSON dans Python
Cet article expliquera comment gérer les fichiers et données JSON dans le langage de programmation Python. Python est livré avec un module «JSON» intégré qui rend la gestion des données JSON faciles et simples.

À propos de JSON

JSON (notation d'objet JavaScript) est un format de fichier et une norme de stockage de données qui utilise des paires de valeurs clés pour stocker et échanger des données. Il s'agit du format d'échange de données le plus utilisé, souvent vu dans les API RESTful, les bases de données légères, les fichiers de configuration et d'autres logiciels hors ligne ou en ligne qui doivent stocker, récupérer et échanger des données. La plupart des langages de programmation incluent des bibliothèques pour analyser et écrire des données JSON par défaut et JSON est un format de données agnostique en langage de programmation. Les valeurs stockées dans un fichier ou une charge utile JSON contiennent généralement des chaînes, des nombres et des types de données sérialisables comme les listes (tableaux).

Dictionnaires JSON et Python

Les données JSON dans Python sont converties en un objet de dictionnaire en utilisant la méthode «Charge». On voit souvent que certaines personnes assimilent les données JSON et un dictionnaire Python, car la syntaxe pour définir les deux est presque la même. Cependant, les données JSON ne sont rien d'autre qu'une chaîne de texte structurée dans une syntaxe rigide tandis qu'un dictionnaire Python est un objet de structure de données stocké en mémoire. Si vous souhaitez stocker des données de dictionnaire dans un fichier texte ou l'envoyer à un autre programme non-python, vous devrez d'abord les convertir en chaîne de texte (octets). Cette chaîne de texte déversée / convertie est définie dans la syntaxe standard de JSON et le processus de conversion d'un dictionnaire Python en une chaîne compatible JSON est appelée sérialisation.

Lire et vider les données JSON dans Python

Les données JSON peuvent être récupérées en tant que formulaire de réponse un serveur, lu à partir du fichier, tranché à partir des paramètres de requête URL, etc. Cet article se concentrera principalement sur la lecture des données JSON à partir d'un fichier stocké localement. Supposons qu'un «test.Le fichier JSON "contient des données suivantes:

"Codename": "Eoan EMmine", "Version": "Ubuntu 19.dix"

Pour lire le test.Fichier JSON Dans Python, vous pouvez utiliser le code ci-dessous:

Importer JSON
avec ouvert ("Test.JSON ") comme f:
data = json.charge (f)
Dump = JSON.Dumps (données)
Imprimer (données)
imprimer (type (données))
Imprimer (vidage)
imprimer (type (vidage))

La première ligne du code ci-dessus importe le module JSON. Dans la ligne suivante, «avec Open» est utilisé pour lire en toute sécurité le contenu du fichier. Dans le bloc «avec ouvert», «JSON.La méthode de chargement est utilisée pour lire et stocker le contenu des fichiers dans la variable «Data». Les données chargées à l'étape précédente sont converties en chaîne JSON à l'aide du «JSON.Méthode Dump ». L'exécution du code ci-dessus affichera la sortie suivante:

'Codename': 'eoan ermine', 'version': 'Ubuntu 19.dix'

"Codename": "Eoan EMmine", "Version": "Ubuntu 19.dix"

Remarquez dans la sortie ci-dessus que le «JSON.La méthode de chargement »lit les données JSON brutes dans un dictionnaire Python tandis que" JSON.Dumps »Méthodes convertit un dictionnaire en une chaîne compatible avec la structure JSON. Une fois qu'un objet JSON a été converti en un objet de dictionnaire Python, vous pouvez utiliser des méthodes de dictionnaire Python intégré pour gérer les données. L'exemple ci-dessus est assez basique et n'inclut pas les tableaux dans les données JSON ou les valeurs imbriquées. Cependant, dans Python, vous pouvez gérer ces valeurs comme tous les autres dictionnaires et listes imbriqués.

Tri et jolie imprimer les données JSON

Le «JSON.La méthode de vidage »prend en charge certains paramètres facultatifs pour les clés de tri et imprimer la sortie pour améliorer la lisibilité.

Importer JSON
avec ouvert ("Test.JSON ") comme f:
data = json.charge (f)
Dump = JSON.vidanges (données, sort_keys = true, indent = 4)
Imprimer (vidage)

Le code ci-dessus affichera la sortie suivante:


"nom de code": "eoan ermine",
"Version": "Ubuntu 19.dix"

Conversions de type de données

La liste ci-dessous illustre comment les valeurs JSON sont converties en objets Python et vice versa.

Json Python
chaîne Str
nombre int ou flotteur
vrai faux Vrai faux
nul Aucun
déployer liste
objet diction

Json.Module de ligne de commande d'outils

Python comprend un bel utilitaire de ligne de commande «JSON.outil "qui peut être utilisé pour valider et imprimer des chaînes et fichiers JSON.

$ echo '"Codename": "Eoan Ermine", "Version": "Ubuntu 19.10 " '| Python3 -M JSON.outil

L'exécution de la commande ci-dessus vous montrera la sortie suivante:


"nom de code": "eoan ermine",
"Version": "Ubuntu 19.dix"

Vous pouvez également utiliser JSON.Outil avec les fichiers JSON. Remplacez «in_file» et «out_file» dans la commande ci-dessous par vos valeurs souhaitées:

$ python3 -m JSON.outil dans_file out_file

Autre que de jolies impression, tri et validation des données JSON, JSON.L'outil ne fait rien d'autre. Donc, si vous souhaitez manipuler des données JSON, vous devez écrire votre propre code personnalisé à l'aide du module JSON intégré.