Json.dumps ve json.load arasındaki fark nedir? [kapalı]


Yanıtlar:


190

dumps bir nesneyi alır ve bir dize üretir:

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

load dosya benzeri bir nesne alır, bu nesnedeki verileri okur ve bir nesne oluşturmak için bu dizeyi kullanır:

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

Not olduğunu dumpve loaddönüştürme dosyaları ve nesneler, süre arasındaki dumpsve loadsarasındaki dönüştürme dizeleri ve nesneler. s-Less fonksiyonlarını fonksiyonların etrafındaki sarmalayıcılar olarak düşünebilirsiniz s:

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

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

Bu benim anlayışım için çok yararlı. Hala Python'da her şeyin bir nesne olduğunu düşündüğüm için biraz kafam karıştı. String kendi içinde bir nesne olmaz mıydı? O zaman ikisi arasında nasıl dönüştürebilirsiniz? Aptalca soru için özür dilerim.
Bowen Liu

object"Farklı bir şey" anlamında kullanıyorum str. Benzeri bir dize Python nesnesine '"foo"'çözülür ; gibi bir dize Python listesine , vb. çözülür str'foo'"[1,2,3]"[1,2,3]
chepner

dumps()- JSON nesnelerine kodlama dump()- dosyada kodlanmış dize yazma loads()- JSON dizesinin load()
kodunu

74

json yükler -> bir json nesnesini temsil eden bir dizeden bir nesne döndürür.

json dumps -> bir nesneden bir json nesnesini temsil eden bir dize döndürür.

load ve dump -> dosya yerine / dosyadan okuma / yazma


10
> json dumps -> bir diksiyondan bir json nesnesini temsil eden bir dize döndürür. Bu yakın, ama json.dumps () 'a ilettiğiniz bir dikte olmak zorunda değil. Bir liste veya bir dize veya bir boole iletebilirsiniz.
Ross
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.