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。

FonctionDescription
json.dumps Encoder des objets Python en chaînes JSON
json.loadsDé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

#!/usr/bin/python
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

#!/usr/bin/python
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

#!/usr/bin/python
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

FonctionDescription
encode Encoder des objets Python en chaînes JSON
decodeDé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

#!/usr/bin/python
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

#!/usr/bin/python
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