web-dev-qa-db-fra.com

Quelle est la différence entre json.dumps et json.load?

Quelle est la différence entre json.dumps et json.load?

De ma compréhension, on charge JSON dans un dictionnaire et un autre dans des objets.

124
AnMaree

dumps prend un objet et produit une chaîne:

>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'

load prendrait un objet de type fichier, lirait les données de cet objet et utiliserait cette chaîne pour créer un objet:

with open('file.json') as fh:
    a = json.load(fh)

Notez que dump et load convertissent entre fichiers et objets, tandis que dumps et loads convertissent chaînes et des objets. Vous pouvez penser aux fonctions s- moins comme des enveloppes autour des fonctions s:

def dump(obj, fh):
    fh.write(dumps(obj))

def load(fh):
    return loads(fh.read())
164
chepner

json charges -> renvoie un objet à partir d'une chaîne représentant un objet json.

json dumps -> renvoie une chaîne représentant un objet json à partir d'un objet.

load and dump -> lecture/écriture depuis/vers le fichier au lieu de chaîne

66
stackhelper101