Qual è la differenza tra json.dumps e json.load? [chiuso]


Risposte:


190

dumps prende un oggetto e produce una stringa:

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

load prenderebbe un oggetto simile a un file, leggerebbe i dati da quell'oggetto e userebbe quella stringa per creare un oggetto:

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

Si noti che dumpe loadconvertire tra file e oggetti, mentre dumpse loadsconvertire tra stringhe e oggetti. Puoi pensare alle sfunzioni -less come involucri attorno alle sfunzioni:

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

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

Questo è molto utile per la mia comprensione. Sono comunque un po 'confuso perché pensavo che tutto fosse un oggetto in Python. La stringa non sarebbe un oggetto in sé? Come hai potuto convertire tra i due allora? Ci scusiamo per la domanda stupida.
Bowen Liu,

Sto usando objectnel senso di "qualcosa di un tipo diverso da str". Una stringa simile '"foo"'viene decodificata nell'oggetto Python ; una stringa simile viene decodificata nell'elenco Python , ecc.str'foo'"[1,2,3]"[1,2,3]
chepner

dumps()- codifica in oggetti JSON dump()- scrittura della stringa codificata su file loads()- Decodifica della stringa JSON load()- Decodifica durante la lettura del file JSON
Jamil Noyda

74

json carica -> restituisce un oggetto da una stringa che rappresenta un oggetto json.

dump json -> restituisce una stringa che rappresenta un oggetto json da un oggetto.

carica e scarica -> leggi / scrivi da / su file anziché su stringa


10
> json dumps -> restituisce una stringa che rappresenta un oggetto json da un dict. È vicino, ma non deve essere un dict che passi a json.dumps (). Puoi passare un elenco, una stringa o un valore booleano ...
Ross,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.