Kursus Pengembangan Python Lanjutan
Bab
>
Tingkat
Modul Serialisasi
Modul JSON
Objective
Pergi ke stasiun layanan dan pastikan data tersimpan dengan benar dengan menggunakan modul JSON untuk memformat berkas.
Ada sebuah stasiun layanan di selatan gedung annex di area konstruksi baru, seluruh area ini akan direvitalisasi untuk penanaman tanaman. Stasiun tersebut memiliki berbagai terminal yang memproses data untuk pengembangan baru, kita bisa menginput data secara manual, namun hal itu akan memakan banyak waktu. Untuk proses penanganan data, kita dapat menggunakan JSON yang merupakan singkatan dari JavaScript Object Notation, yaitu format data yang independen dari bahasa pemrograman dan menyimpan informasi dalam format yang mudah dibaca untuk penyimpanan dan transmisi data.
Untuk menggunakan JSON dengan python, kita dapat menggunakan import json yang akan memberikan akses ke fungsi-fungsi JSON. Untuk keperluan kita, kita akan menggunakan fungsi-fungsi berikut:
json.loads(): Mengonversi string JSON menjadi data Python, mengambil satu argumen, yaitu string yang ingin Anda parsing ke Python.json.dumps(): Mengonversi data Python menjadi objek string JSON, fungsi ini bisa menerima hingga empat (4) argumen, hanya argumen pertama yang wajib. Argumen-argumen tersebut adalah sebagai berikut.- Data Python yang ingin Anda konversi menjadi JSON: data tersebut dapat berupa tipe data berikut: dictionary, list, tuple, string, integer, float, boolean, dan tipe data None.
indent: jumlah spasi yang ingin Anda tambahkan di awal setiap titik data.separators: bagian-bagian yang ingin Anda masukkan di antara dan/atau di akhir titik data.sort_keys: mengurutkan kunci dictionary secara alfabet jika Anda mengonversi tipe file dictionary.
Untuk memulai, pergilah ke tanda X emas di pos terdepan sebelah kiri dan hadaplah meja dengan memo. Gunakan fungsi read() untuk memverifikasi informasi yang diperlukan untuk mengonfirmasi status terminal dan catatlah. Berjalanlah ke tanda X terang di depan terminal, ada sebuah konstanta bernama transmission, gunakan json.dumps() untuk memformatnya sebagai json sehingga kita dapat mengonversinya, seperti ini: transmission = json.dumps(transmission).
Buat sebuah dictionary bernama load dan simpan nilai dari json.loads() dengan konstanta transmission sebagai argumen. Ini akan mengonversi JSON ke dalam Python sehingga informasinya dapat dengan mudah diakses. Gunakan fungsi speak() dengan kunci-kunci yang tercantum dalam memo dan gunakan dictionary load yang telah Anda buat. Sebagai contoh: player.speak(load["system"]), lakukan hal ini untuk semua kunci.
Setelah memeriksa informasi pada terminal, berjalanlah ke stasiun, masuklah dan pergilah ke tanda X terang di atas karpet hijau. Periksa memo menggunakan fungsi read(), periksa dan catat nilainya; di editor terdapat dictionary yang telah dituliskan sebelumnya bernama profile, isilah nilai-nilai yang hilang dengan informasi yang ada dalam memo.
Berjalanlah ke tanda X gelap di atas karpet hijau, hadaplah terminal dan buat sebuah variabel bernama transfer lalu simpan nilai dari json.dumps() dan tambahkan dictionary profile sebagai satu-satunya argumen. Dengan melakukan ini, kita mengonversi dictionary menjadi objek string JSON. Gunakan fungsi display() yang telah dituliskan sebelumnya dan tambahkan JSON transfer untuk menyimpan data pada terminal.
Berjalanlah ke tanda X gelap di atas karpet merah dan gunakan fungsi read() untuk memverifikasi data yang telah dimasukkan ke terminal. Data tersebut tidak ditampilkan dalam format yang tepat; agar informasi tersimpan dengan benar, data tersebut perlu disimpan dan diformat dalam JSON. Data disimpan dalam sebuah konstanta dictionary bernama red_data, buat sebuah variabel bernama red_storage dan simpan nilai dari fungsi json.dumps().
Untuk memformat data, tambahkan argumen-argumen berikut ke fungsi tersebut: tambahkan red_data untuk mengonversi konstanta tersebut ke dalam JSON, tambahkan indent dan setel nilainya ke 5 untuk memformat teks, tambahkan separators dan masukkan ("- ", " = ") untuk menambahkan simbol-simbol tersebut di akhir setiap baris. Barisnya harus terlihat seperti ini: red_storage = json.dumps(red_data, indent=5, separators=("- ", " = ")). Gunakan fungsi display() yang telah dituliskan sebelumnya dan tambahkan string JSON red_storage untuk menyimpan dan menampilkan data yang telah diformat.
Berjalanlah ke tanda X gelap di atas karpet biru, hadaplah terminal dan gunakan fungsi read(), seperti sebelumnya data tidak tersimpan dengan benar dan perlu diformat serta diurutkan. Data disimpan dalam sebuah konstanta bernama blue_data, buat sebuah variabel bernama blue_storage dan simpan nilai dari fungsi json.dumps().
Untuk argumennya: tambahkan blue_data untuk mengonversi konstanta tersebut ke dalam JSON, tambahkan indent dan setel nilainya ke 4 untuk memformat teks, tambahkan separators dan masukkan (".0", " = ") untuk menambahkan simbol-simbol tersebut di akhir setiap baris. Selain itu, tambahkan juga argumen sort_keys sebagai argumen terakhir dan setel nilainya ke True, seperti ini: sort_keys=True. Gunakan fungsi display() yang telah dituliskan sebelumnya dan tambahkan string JSON blue_storage untuk menyimpan dan menampilkan data yang telah diurutkan dan menyelesaikan level.