Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Python: Objek dan Berkas

Pelajaran 14 dari 16

CSV, JSON, dan modul

JSON dengan json.load dan json.dump

Setelah pelajaran ini kamu bisa menyimpan dan memuat data bersarang dengan json.dump dan json.load, memakai indent dan ensure_ascii, serta mengubah objek dataclass menjadi dict sebelum disimpan.

±13 menitDiperiksa 5 Okt 2026

Materi

JSON menyimpan data bersarang sebagai teks: objek {...}, larik [...], teks, angka, true/false, dan null. json.dump(data, f) menulis data Python ke berkas yang terbuka; json.load(f) membacanya kembali. Pasangannya, json.dumps dan json.loads, bekerja dengan str alih-alih berkas. dict menjadi objek, list dan tuple menjadi larik dan kembali sebagai list, None menjadi null.

Argumen indent=2 menulis JSON bertingkat yang mudah dibaca orang. Secara bawaan json.dump menulis huruf non-ASCII sebagai kode, sehingga "Kué" tersimpan sebagai "Ku\u00e9"; ensure_ascii=False menulis hurufnya apa adanya — pastikan berkasnya dibuka dengan encoding="utf-8".

import json

pengaturan = {"toko": "Batik Ibu Siti", "kota": "Pekalongan", "diskon": {"member": 10, "grosir": 15}}
with open("pengaturan_toko.json", "w", encoding="utf-8") as f:
    json.dump(pengaturan, f, indent=2, ensure_ascii=False)

with open("pengaturan_toko.json", encoding="utf-8") as f:
    dibaca = json.load(f)
print(dibaca["diskon"]["grosir"])   # 15

Kunci objek JSON selalu teks. Dict berkunci angka, {1: "Senin"}, tersimpan sebagai {"1": "Senin"} dan kembali dengan kunci "1", sehingga data[1] berhenti dengan KeyError. Objek kelas buatanmu tidak bisa disimpan langsung: json.dump berhenti dengan TypeError: Object of type Barang is not JSON serializable. Ubah dulu dengan asdict() untuk dataclass, dan saat memuat, bangun objeknya lagi dari dict.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 3 dari 3

Apa yang terjadi di baris terakhir kode ini?

import json

stok = {1: "Kertas", 2: "Tinta"}
teks = json.dumps(stok)
kembali = json.loads(teks)
print(kembali[1])
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke