Python

Comment lire et écrire des fichiers Json en Python

Comment lire et écrire des fichiers Json en 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 rend la gestion des données JSON simple et directe.

À 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 largement 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 comme des listes (tableaux).

Dictionnaires JSON et Python

Les données JSON en python sont converties en un objet de dictionnaire en utilisant 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 les données du 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 "test.json" contient les données suivantes :

"nom de code": "Eoan Ermine", "version": "Ubuntu 19.dix"

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

importer json
avec ouvert ("test.json") en tant que f :
données = json.charge(f)
décharge = json.vidages (données)
imprimer (données)
imprimer (type(données))
imprimer (vider)
print (type(dump))

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 "avec ouverture", "json.load" méthode est utilisée pour lire et stocker le contenu du fichier dans la variable "data". Les données chargées à l'étape précédente sont reconverties en chaîne json à l'aide du "json.méthode « vider ». L'exécution du code ci-dessus affichera la sortie suivante :

'nom de code' : 'Eoan Ermine', 'version' : 'Ubuntu 19.dix'

"nom de code": "Eoan Ermine", "version": "Ubuntu 19.dix"

Notez dans la sortie ci-dessus que le "json.load" la méthode lit les données json brutes dans un dictionnaire python tandis que "json.dumps" 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é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

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

importer json
avec ouvert ("test.json") comme f :
données = json.charge(f)
décharge = json.dumps(data, sort_keys=True, indent=4)
imprimer (vider)

Le code ci-dessus affichera la sortie suivante :


"codename": "Eoan Hermine",
"version": "Ubuntu 19.dix"

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 str
numéro entier ou flottant
vrai faux Vrai faux
nul Rien
déployer liste
objet dict

Json.module de ligne de commande de l'outil

Python inclut un bel utilitaire de ligne de commande "json.tool" qui peut être utilisé pour valider et joliment imprimer des chaînes et des 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 :


"codename": "Eoan Hermine",
"version": "Ubuntu 19.dix"

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

$ python3 -m json.outil in_file out_file

Outre une jolie impression, le tri et la 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é.

Meilleures applications de mappage de manette de jeu pour Linux
Si vous aimez jouer à des jeux sur Linux avec une manette de jeu au lieu d'un système de saisie clavier et souris typique, il existe des applications ...
Outils utiles pour les joueurs Linux
Si vous aimez jouer à des jeux sur Linux, il est probable que vous ayez utilisé des applications et des utilitaires comme Wine, Lutris et OBS Studio p...
Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...