Analyse de données JSON en Python3

JSON (JavaScript Object Notation) est un format léger d'échange de données.

Si vous ne comprenez pas encore JSON, vous pouvez d'abord lire notreTutoriel JSON。

Python3 peut utiliser le module json pour encoder et décoder des données JSON. Il contient deux fonctions :

  • json.dumps(): Encoder des données.
  • json.loads(): Décoder des données.

Pendant le processus d'encodage/décodage json, les types natifs de Python et les types json sont convertis les uns en les autres. Les correspondances de conversion spécifiques sont les suivantes :

Tableau de correspondance de conversion des types Python vers JSON :

Python JSON
dict objet
list, tuple array
str string
int, float, énumérations dérivées de int et float nombre
True vrai
False false
Aucune null

Table de correspondance de décodage JSON vers les types Python :

JSON Python
objet dict
array liste
string str
nombre (int) int
nombre (réel) float
vrai True
false False
null Aucune

exemples de json.dumps et json.loads

L'exemple suivant montre la conversion de structures de données Python en JSON :

Exemple (Python 3.0+)

#!/usr/bin/python3 import json # Type dictionnaire Python converti en objet JSON data = { 'no' : 1, 'name' : 'Exemple', 'url' : 'https://www.example.com' } json_str = json.dumps(data) print ("Données originales Python :", repr(data)) print ("Objet JSON :", json_str)

L'exécution du code ci-dessus produit le résultat suivant :

Python 原始数据: {'no': 1, 'name': 'Example', 'url': 'https://www.example.com'}
JSON 对象: {"no": 1, "name": "Example", "url": "https://www.example.com"}

D'après le résultat de sortie, on peut voir qu'après l'encodage, les types simples sont très similaires à leur sortie repr() d'origine.

En reprenant l'exemple ci-dessus, nous pouvons reconvertir une chaîne encodée en JSON en une structure de données Python :

Exemple (Python 3.0+)

#!/usr/bin/python3 import json # Type dictionnaire Python converti en objet JSON data1 = { 'no' : 1, 'name' : 'Exemple', 'url' : 'http://www.example.com' } json_str = json.dumps(data1) print ("Données d'origine Python :", repr(data1)) print ("Objet JSON :", json_str) # Convertir un objet JSON en dictionnaire Python data2 = json.loads(json_str) print ("data2['name']: ", data2['name']) print ("data2['url']: ", data2['url'])

L'exécution du code ci-dessus produit le résultat suivant :

Python 原始数据: {'name': 'Example', 'no': 1, 'url': 'http://www.example.com'}
JSON 对象: {"name": "Example", "no": 1, "url": "http://www.example.com"}
data2['name']:  Example
data2['url']:  http://www.example.com

Si vous avez affaire à un fichier plutôt qu'à une chaîne de caractères, vous pouvez utiliserjson.dump()etjson.load()pour encoder et décoder des données JSON. Par exemple :

Exemple (Python 3.0+)

# Écrire des données JSON with open('data.json', 'w') as f: json.dump(data, f) # Lire les données with open('data.json', 'r') as f: data = json.load(f)

Pour plus d'informations, veuillez consulter :https://docs.python.org/3/library/json.html Autres extensions