Python JSON
Dans ce chapitre, nous allons présenter comment utiliser le langage Python pour encoder et décoder des objets JSON.
JSON (JavaScript Object Notation) est un format d'échange de données léger, facile à lire et à écrire pour les humains.
Fonctions JSON
Pour utiliser les fonctions JSON, vous devez importer la bibliothèque json :import json。
| Fonction | Description |
|---|---|
| json.dumps | Encoder des objets Python en chaînes JSON |
| json.loads | Décoder des chaînes JSON encodées en objets Python |
json.dumps
json.dumps est utilisé pour encoder des objets Python en chaînes JSON.
Syntaxe
json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, encoding="utf-8", default=None, sort_keys=False, **kw)
Exemple
L'exemple suivant encode un tableau en données au format JSON :
Exemple
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps(data)
print(data2)
Le résultat de l'exécution du code ci-dessus est :
[{"a": 1, "c": 3, "b": 2, "e": 5, "d": 4}]
Utilisez des paramètres pour formater la sortie des données JSON :
Exemple
import json
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
data2 = json.dumps({'a': 'Example', 'b': 7}, sort_keys=True, indent=4, separators=(',', ': '))
print(data2)
Le résultat de l'exécution du code ci-dessus est :
{
"a": "Example",
"b": 7
}
Table de conversion des types primitifs Python vers les types JSON :
| Python | JSON |
|---|---|
| dict | objet |
| list, tuple | array |
| str, unicode | string |
| int, long, float | nombre |
| True | vrai |
| False | false |
| Aucune | null |
json.loads
json.loads est utilisé pour décoder des données JSON. Cette fonction renvoie le type de données des champs Python.
Syntaxe
json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
Exemple
L'exemple suivant montre comment Python décode les objets JSON :
Exemple
import json
jsonData = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = json.loads(jsonData)
print(text)
Le résultat de l'exécution du code ci-dessus est :
{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
Table de conversion des types JSON vers les types Python :
| JSON | Python |
|---|---|
| objet | dict |
| array | liste |
| string | unicode |
| nombre (int) | int, long |
| nombre (réel) | float |
| vrai | True |
| false | False |
| null | Aucune |
Pour plus de contenu, reportez-vous à :https://docs.python.org/2/library/json.html。
Utilisation d'une bibliothèque tierce : Demjson
Demjson est une bibliothèque de modules tierce pour Python, qui peut être utilisée pour encoder et décoder des données JSON, et inclut les fonctionnalités de formatage et de validation de JSONLint.
Adresse GitHub :https://github.com/dmeranda/demjson
Site officiel :http://deron.meranda.us/python/demjson/
Configuration de l'environnement
Avant d'utiliser Demjson pour encoder ou décoder des données JSON, nous devons d'abord installer le module Demjson. Dans ce tutoriel, nous allons téléchargerDemjsonet installer :
$ tar -xvzf demjson-2.2.3.tar.gz $ cd demjson-2.2.3 $ python setup.py install
Pour plus d'instructions d'installation, consultez :http://deron.meranda.us/python/demjson/install
Fonctions JSON
| Fonction | Description |
|---|---|
| encode | Encoder des objets Python en chaînes JSON |
| decode | Décoder des chaînes JSON encodées en objets Python |
encode
La fonction encode() de Python est utilisée pour encoder des objets Python en chaînes JSON.
Syntaxe
demjson.encode(self, obj, nest_level=0)
Exemple
L'exemple suivant encode un tableau en données au format JSON :
Exemple
import demjson
data = [ { 'a' : 1, 'b' : 2, 'c' : 3, 'd' : 4, 'e' : 5 } ]
json = demjson.encode(data)
print(json)
Le résultat de l'exécution du code ci-dessus est :
[{"a":1,"b":2,"c":3,"d":4,"e":5}]
decode
Python peut utiliser la fonction demjson.decode() pour décoder des données JSON. Cette fonction renvoie le type de données des champs Python.
Syntaxe
demjson.decode(self, txt)
Exemple
L'exemple suivant montre comment Python décode les objets JSON :
Exemple
import demjson
json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
text = demjson.decode(json)
print(text)
Le résultat de l'exécution du code ci-dessus est :
{u'a': 1, u'c': 3, u'b': 2, u'e': 5, u'd': 4}
Autres extensions