Mis a jour le 2025-04-14, 12:10

Utilisation de JSON

Pour utiliser le package, faire import json
Encodage en json :
  • json.dumps(['a', {'b': 1, 'c': [2, 3.5]}, ('e', 'f'), True, None]) donne le json suivant, sous forme de chaîne de caractère : '["a", {"c": [2, 3.5], "b": 1}, ["e", "f"], true, null]'
  • on peut changer les séparateurs de liste et de dictionnaire qui par défaut sont ', ' et ': ' : en général, c'est simplement pour supprimer les espaces : json.dumps(['a', {'b': 1, 'c': 2}], separators = (',', ':')) donne '["a",{"c":2,"b":1}]' (plus d'espaces).
  • on peut décider de mettre des indentations pour la lisibilité : print(json.dumps(['a', {'b': 1, 'c': 2}], indent = 2)) donne :
    
    [
      "a", 
      {
        "c": 2, 
        "b": 1
      }
    ]
        
  • l'option sort_keys = True permet de trier les clefs des dictionnaires (le défaut est False).
Décodage de json :
  • x = '["a", {"c": [2, 3.5], "b": 1}, ["e", "f"], true, null]'; y = json.loads(x) met dans y l'objet python correspondant : [u'a', {u'c': [2, 3.5], u'b': 1}, [u'e', u'f'], True, None]
  • y = json.load(fh) : on peut charger directement un objet json d'un filehandle de fichier (attention, pas la même fonction !)
le package jsonpickle permet de sérialiser en json un objet d'une classe :
  • jsonpickle.encode(myObject, indent = 1) : renvoie une string de l'objet sérialisé.
  • myObj = jsonpickle.decode(myString) : désérialise la string pour reconstruire un objet.

Copyright python-simple.com
programmer en python, tutoriel python, graphes en python, Aymeric Duclert