Lompat ke konten utama
←

Python: Objek dan Berkas

Pelajaran 16 dari 21

CSV, JSON, dan modul

JSON dari respons API yang tersimpan

Setelah pelajaran ini kamu bisa membaca respons API berformat JSON dari berkas, memeriksa statusnya, dan mengubah item bersarang yang memuat null menjadi baris datar.

  • ±13 menit
  • 3 latihan
  • Diperiksa 28 Okt 2026

Latihan di pelajaran ini butuh akun gratis. Progres, kode, dan catatanmu hanya tersimpan di browser ini. Masuk untuk menyimpannya

Materi

API web mengirim data sebagai teks JSON; MDN menyebut JSON sebagai format teks untuk data terstruktur yang umum dipakai mengirim data dari server ke aplikasi. Python di kelas ini berjalan di browser tanpa jaringan, jadi latihannya memakai respons yang sudah disimpan ke berkas. Cara mengolahnya sama dengan respons yang baru diterima: teks diubah dengan json.loads, dan berkas dibaca dengan json.load.

Respons API jarang berupa tabel datar. Data utamanya dibungkus objek yang juga memuat status atau nomor halaman, setiap item bisa memuat objek di dalam objek, dan sebagian field bernilai null atau tidak ada sama sekali. Tabel konversi di dokumentasi json menunjukkan object menjadi dict, array menjadi list, dan null menjadi None.

import json

teks = '{"status": "ok", "data": [{"id": 7, "nama": "Kopi Gayo", "toko": {"kota": "Takengon"}, "diskon": null}]}'
respons = json.loads(teks)
for item in respons["data"]:
    baris = {"id": item["id"], "nama": item["nama"], "kota": item["toko"]["kota"],
             "diskon": item.get("diskon") or 0}
    print(baris)   # {'id': 7, 'nama': 'Kopi Gayo', 'kota': 'Takengon', 'diskon': 0}

Pola kerjanya: periksa status lebih dulu, ambil list di dalam pembungkus, lalu untuk setiap item susun dict datar berisi field yang dibutuhkan. List dict datar itulah yang siap ditulis dengan csv.DictWriter dari pelajaran CSV, atau dibaca pandas di kelas Analisis Data dengan Python.

Latihan

0/3 lulus

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

Latihan 3 dari 3

Apa yang tercetak?

import json

item = json.loads('{"kode": "K-01", "diskon": null}')
print(item.get("diskon", 0), item.get("ongkir", 0))
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Lanjutkan ke