Apa perbedaan antara json.dumps dan json.load? [Tutup]


143

Apa perbedaan antara json.dumpsdan json.load?

Dari pemahaman saya, satu memuat JSON ke dalam kamus dan lainnya memuat ke dalam objek.

Jawaban:


190

dumps mengambil objek dan menghasilkan string:

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

load akan mengambil objek seperti file, membaca data dari objek itu, dan menggunakan string itu untuk membuat objek:

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

Perhatikan itu dumpdan loadkonversi antara file dan objek, sementara dumpsdan loadskonversi antara string dan objek. Anda dapat menganggap sfungsi -less sebagai pembungkus sfungsi:

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

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

Ini sangat membantu pemahaman saya. Masih saya sedikit bingung karena saya pikir semuanya adalah objek dengan Python. Bukankah string akan menjadi objek itu sendiri? Bagaimana Anda bisa mengkonversi antara keduanya? Maaf untuk pertanyaan konyol ini.
Bowen Liu

Saya menggunakan objectdalam arti "sesuatu jenis selain str". String seperti '"foo"'didekodekan ke objek Python ; string seperti diterjemahkan ke dalam daftar Python , dll.str'foo'"[1,2,3]"[1,2,3]
chepner

dumps()- penyandian ke objek JSON dump()- penyandian string yang dikodekan pada file loads()- Decode the JSON string load()- Decode saat file JSON dibaca
Jamil Noyda

74

json memuat -> mengembalikan objek dari string yang mewakili objek json.

json dumps -> mengembalikan string yang mewakili objek json dari suatu objek.

memuat dan membuang -> baca / tulis dari / ke file bukan string


10
> json dumps -> mengembalikan string yang mewakili objek json dari dict. Itu dekat, tetapi itu tidak harus berupa dict yang Anda kirimkan ke json.dumps (). Anda dapat melewati daftar, atau string, atau boolean ..
Ross
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.