Quelle est la différence entre json.dumps
et json.load
?
D'après ce que je comprends, on charge JSON dans un dictionnaire et un autre dans des objets.
dumps
prend un objet et produit une chaîne:
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load
prendrait un objet semblable à un 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
convertir entre les fichiers et les objets, tandis que dumps
et loads
convertir entre les chaînes et les objets. Vous pouvez considérer les s
fonctions -less comme des wrappers autour des s
fonctions:
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
object
dans le sens de "quelque chose d'un autre type questr
". Une chaîne comme'"foo"'
est décodée en objet Python ; une chaîne comme est décodée dans la liste Python , etc.str
'foo'
"[1,2,3]"
[1,2,3]
dumps()
- encodage en objets JSONdump()
- écriture de chaîne encodée sur fichierloads()
- Décodage de la chaîne JSONload()
- Décodage pendant la lecture du fichier JSONjson 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 un fichier au lieu d'une chaîne
la source