Comment lire et écrire des fichiers Json en Python

How Read Write Json Files Python



Cet article explique comment gérer les fichiers et les données JSON dans le langage de programmation Python. Python est livré avec un module json intégré qui facilite et simplifie la gestion des données JSON.

À propos de JSON

JSON (JavaScript Object Notation) est un format de fichier et une norme de stockage de données qui utilise des paires clé-valeur pour stocker et échanger des données. C'est le 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 indépendant du langage de programmation. Les valeurs stockées dans un fichier JSON ou une charge utile contiennent généralement des chaînes, des nombres et des types de données sérialisables tels que des listes (tableaux).







Dictionnaires JSON et Python

Les données JSON en python sont converties en un objet dictionnaire à l'aide de la méthode load. 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 les envoyer à un autre programme non python, vous devrez d'abord les convertir en une chaîne de texte (octets). Cette chaîne de texte vide/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é sérialisation.



Lecture et vidage de données JSON en Python

Les données JSON peuvent être récupérées en tant que réponse d'un serveur, lues à partir d'un fichier, découpées à partir de paramètres de requête URL, etc. Cet article se concentrera principalement sur la lecture de données json à partir d'un fichier stocké localement. Supposons qu'un fichier test.json contienne les données suivantes :



{'nom de code' : 'Eoan Ermine', 'version' : 'Ubuntu 19.10'}

Pour lire le fichier test.json en python, vous pouvez utiliser le code ci-dessous :





importerjson

avec ouvert ('test.json') commeF:
Les données=json.charge(F)

décharger=json.décharges(Les données)

imprimer (Les données)
imprimer (taper(Les données))
imprimer (décharger)
imprimer (taper(décharger))

La première ligne du code ci-dessus importe le module json. Dans la ligne suivante, with open est utilisé pour lire en toute sécurité le contenu du fichier. Dans le bloc with open, la méthode json.load est utilisée pour lire et stocker le contenu du fichier dans la variable de données. Les données chargées à l'étape précédente sont reconverties en chaîne json à l'aide de la méthode json.dump. L'exécution du code ci-dessus affichera la sortie suivante :

{'nom de code':'Eoan Hermine', 'version':'Ubuntu 19.10'}
<classer 'dict'>
{'nom de code':'Eoan Hermine', 'version':'Ubuntu 19.10'}
<classer 'str'>

Notez dans la sortie ci-dessus que la méthode json.load lit les données json brutes dans un dictionnaire python tandis que les méthodes json.dumps convertissent 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 les méthodes de dictionnaire python intégrées pour gérer les données. L'exemple ci-dessus est assez basique et n'inclut pas de tableaux dans les données JSON ou les valeurs imbriquées. Cependant, dans python, vous pouvez gérer ces valeurs comme n'importe quel autre dictionnaire et liste imbriqués.



Tri et jolie impression des données JSON

La méthode json.dump prend en charge certains paramètres facultatifs pour le tri des clés et une jolie impression de la sortie pour une meilleure lisibilité.

importerjson

avec ouvert ('test.json') commeF:
Les données=json.charge(F)

décharger=json.décharges(Les données,clés_tri=Vrai,retrait=4)
imprimer (décharger)

Le code ci-dessus affichera la sortie suivante :

{
'nom de code' : 'Eoan Hermine',
« version » : « Ubuntu 19.10 »
}

Conversions de types de données

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

JSON Python
chaîne de caractères p
numéro entier ou flottant
vrai faux Vrai faux
nul Rien
déployer liste
objet dict

Module de ligne de commande Json.tool

Python inclut un joli utilitaire de ligne de commande json.tool qui peut être utilisé pour valider et imprimer des chaînes et des fichiers JSON.

$ écho'{'nom de code' : '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 Hermine',
« version » : « Ubuntu 19.10 »
}

Vous pouvez également utiliser json.tool avec des fichiers JSON. Remplacez in_file et out_file dans la commande ci-dessous par les valeurs souhaitées :

$ python3 -m json.outilin_file out_file

À part une jolie impression, le tri et la validation des données JSON, json.tool 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é.