Was ist der Unterschied zwischen json.dumps
und json.load
?
Nach meinem Verständnis lädt einer JSON in ein Wörterbuch und ein anderer in Objekte.
dumps
nimmt ein Objekt und erzeugt eine Zeichenfolge:
>>> a = {'foo': 3}
>>> json.dumps(a)
'{"foo": 3}'
load
würde ein dateiähnliches Objekt nehmen, die Daten von diesem Objekt lesen und diese Zeichenfolge verwenden, um ein Objekt zu erstellen:
with open('file.json') as fh:
a = json.load(fh)
Beachten Sie dies dump
und load
konvertieren Sie zwischen Dateien und Objekten, während dumps
und loads
konvertieren Sie zwischen Zeichenfolgen und Objekten. Sie können sich die s
-less-Funktionen als Wrapper um die s
Funktionen vorstellen :
def dump(obj, fh):
fh.write(dumps(obj))
def load(fh):
return loads(fh.read())
object
im Sinne von "etwas von einem anderen Typ alsstr
". Ein String wie'"foo"'
wird in das Python-str
Objekt dekodiert'foo'
. eine Zeichenfolge wie"[1,2,3]"
wird in die Python-Liste[1,2,3]
usw. dekodiertdumps()
- Codierung in JSON-Objektedump()
- Codiertes Schreiben von Zeichenfolgen in Dateienloads()
- Dekodieren der JSON-Zeichenfolgeload()
- Dekodieren beim Lesen der JSON-Dateijson load -> gibt ein Objekt aus einer Zeichenfolge zurück, die ein json-Objekt darstellt.
json dumps -> gibt eine Zeichenfolge zurück, die ein json-Objekt von einem Objekt darstellt.
Laden und Speichern -> Lesen / Schreiben von / in Datei anstelle von Zeichenfolge
quelle