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.