JSON
On utilise le module json
:
Encodage JSON
>>> dico = { "toto" : "tata" }
>>> json . dumps ( dico )
'{"toto": "tata"}'
Attention
Le module json
produit toujours des objets str
.
>>> dico = { "toto" : "tata" }
>>> type ( json . dumps ( dico ))
< class ' str '>
Si ensure_ascii
est vrai (par défaut), il est garanti que les caractères non ASCII soient tous échappés sur la sortie. Si ensure_ascii
est faux, ces caractères seront écrits comme tels.
>>> dico = { "toto" : "éléphant" }
>>> print ( json . dumps ( dico ))
{ "toto" : " \u00e9 l \u00e9 phant" }
>>> print ( json . dumps ( dico , ensure_ascii = False ))
{ "toto" : "éléphant" }
Il existe des options supplémentaires bien pratiques comme indent
et sort_keys
:
>>> dico = { "b" : "world!" , "a" : "Hello" }
>>> print ( json . dumps ( dico , indent = 4 , sort_keys = True ))
{
"a" : "Hello" ,
"b" : "world!"
}
Décodage JSON
>>> texte = '{"toto": "éléphant"}' # texte unicode
>>> json . loads ( texte )
{ 'toto' : 'éléphant' } # dictionnaire
>>> type ( json . loads ( texte ))
< class ' dict '>
Encoder un fichier JSON
#!/usr/bin/env python3
# -*- coding: utf_8 -*-
import json
dico = { "toto" : "éléphant" }
texte = json . dumps ( dico , ensure_ascii = False , indent = 4 )
with open ( "test.json" , mode = "w" , encoding = "utf_8" ) as mon_fichier :
mon_fichier . write ( texte )
Décoder depuis un fichier JSON
#!/usr/bin/env python3
# -*- coding: utf_8 -*-
import json
with open ( "test.json" , mode = "r" , encoding = "utf_8" , errors = "strict" ) as mon_fichier :
contenu = mon_fichier . read ()
dico = json . loads ( contenu )
print ( dico )
Ressources
Dernière mise à jour:
May 6, 2022