Lire, écrire et analyser JSON à l'aide de Python

Lire, écrire et analyser JSON à l'aide de Python

JSON est un format de données léger pour l'échange de données qui peut être facilement lu et écrit par des humains, et facilement analysé et généré par des machines. Il s'agit d'un format de texte complet, indépendant de la langue. Pour travailler avec des données JSON, Python dispose d'un package intégré appelé JSON.

Exemple de chaîne JSON

s = '{'id':01, 'name': 'Emily', 'language': ['C++', 'Python']}' 

La syntaxe de JSON est considéré comme un sous-ensemble de la syntaxe de Javascript y compris les éléments suivants :

  • Paires nom/valeur : Représente des données, le nom est suivi de deux points ( : ), et les paires Nom/Valeur sont séparées par une virgule ( , ).
  • Accolades: Contient des objets.
  • Crochets: Contient des tableaux avec des valeurs séparées par une virgule ( , ).

Les clés/nom doivent être des chaînes avec des guillemets doubles et les valeurs doivent être des types de données parmi les suivants :

Exemple de fichier JSON :

 {  'employee': [  {  'id': '01',  'name': 'Amit',  'department': 'Sales'  },  {  'id': '04',  'name': 'sunil',  'department': 'HR'  }  ] } 

Python Analyser la chaîne JSON

Dans le code ci-dessous, nous allons convertir JSON en objet Python. Pour analyser la chaîne JSON Python, nous importons d'abord le module JSON. Nous avons une chaîne JSON stockée dans une variable 'employé' et nous convertissons cette chaîne JSON en un objet Python en utilisant json.loads() méthode du module JSON en Python. Après cela, nous imprimons le nom d'un employé en utilisant la clé « nom » .

Python3




# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> print> (employee_dict)> print> (employee_dict[> 'name'> ])>

Sortir

{'id': '09', 'name': 'Nitin', 'department': 'Finance'} Nitin 

Python lit le fichier JSON

Supposons que nous ayons un fichier JSON qui ressemble à ceci.

python-append-json1

Ici, nous avons utilisé la fonction open() pour lire le fichier JSON. Ensuite, le fichier est analysé à l'aide de la méthode json.load() qui nous donne un dictionnaire nommé data.

Python3




import> json> # Opening JSON file> f> => open> (> 'data.json'> ,)> # returns JSON object as> # a dictionary> data> => json.load(f)> # Iterating through the json> # list> for> i> in> data[> 'emp_details'> ]:> > print> (i)> # Closing file> f.close()>

Sortir:

python-read-json-output1

Convertir Python Dict en JSON

Dans le code ci-dessous, nous convertissons un Dictionnaire Python à un objet JSON en utilisant json.dumps() méthode du module JSON en Python. Nous importons d'abord le module JSON, puis créons un petit dictionnaire avec quelques paires clé-valeur, puis le transmettons à la méthode json.dumps() avec « indent=4 » pour convertir ce dictionnaire Python en un objet JSON. Comme nous avons donné la valeur de indent à 4, il y a quatre espaces avant chaque donnée, comme on le voit dans la sortie.

Python3




# Python program to convert> # Python to JSON> import> json> > # Data to be written> dictionary> => {> > 'id'> :> '04'> ,> > 'name'> :> 'sunil'> ,> > 'department'> :> 'HR'> }> > # Serializing json> json_object> => json.dumps(dictionary, indent> => 4> )> print> (json_object)>

Sortir

{ 'id': '04', 'name': 'sunil', 'department': 'HR' } 

Les types d'objets Python suivants peuvent être convertis en chaînes JSON :

Objets Python et leur conversion équivalente en JSON :

Python

Équivalent JSON

dicter

objet

liste, tuple

tableau

str

chaîne

int, flotter

nombre

Vrai

vrai

FAUX

FAUX

Aucun

nul

Écrire JSON dans un fichier en Python

Nous pouvons écrire JSON dans un fichier en utilisant la fonction json.dump() du module JSON et la gestion des fichiers en Python. Dans le programme ci-dessous, nous avons ouvert un fichier nommé sample.json en mode écriture en utilisant 'Dans' . Le fichier sera créé s'il n'existe pas. Json.dump() transformera le dictionnaire Python en chaîne JSON et il sera enregistré dans le fichier sample.json.

Python3




# Python program to write JSON> # to a file> import> json> > # Data to be written> dictionary> => {> > 'name'> :> 'sathiyajith'> ,> > 'rollno'> :> 56> ,> > 'cgpa'> :> 8.6> ,> > 'phonenumber'> :> '9976770500'> }> > with> open> (> 'sample.json'> ,> 'w'> ) as outfile:> > json.dump(dictionary, outfile)>

Sortir:

python-json-écriture dans un fichier

Python jolie impression JSON

Lorsque nous convertissons une chaîne en JSON, les données sont dans un format moins lisible. Pour le rendre plus lisible, nous pouvons utiliser une jolie impression en passant des arguments supplémentaires dans la fonction json.dumps() tels que retrait et clés_de_sort tel qu'utilisé dans le code ci-dessous.

Python3




# Python program to convert JSON to Python> import> json> # JSON string> employee> => '{'id':'09', 'name': 'Nitin', 'department':'Finance'}'> # Convert string to Python dict> employee_dict> => json.loads(employee)> # Pretty Printing JSON string back> print> (json.dumps(employee_dict, indent> => 4> , sort_keys> => True> ))>

Sortir

{ 'department': 'Finance', 'id': '09', 'name': 'Nitin' }