Kursus Pembangunan Python Lanjutan
Bab
>
Tahap

Modul Serialisasi
Modul JSON

Objektif

Pergi ke stesen perkhidmatan dan pastikan data disimpan dengan betul dengan menggunakan modul JSON untuk memformat fail.

Terdapat stesen perkhidmatan di selatan bangunan tambahan dalam kawasan pembinaan baru, keseluruhan kawasan ini akan dibangunkan semula untuk menanam tanaman. Stesen ini mempunyai pelbagai terminal yang memproses data untuk pembangunan baharu, kita boleh menulis data secara manual, tetapi itu akan mengambil banyak masa. Untuk proses pengendalian data, kita boleh menggunakan JSON yang merupakan singkatan bagi JavaScript Object Notation, ia adalah format data yang bebas daripada bahasa pengaturcaraan dan menyimpan maklumat dalam bentuk yang mudah dibaca untuk penyimpanan dan penghantaran data.

Untuk menggunakan JSON dengan python kita boleh menggunakan import json yang akan memberi kita akses kepada fungsi JSON, untuk tujuan kita kita akan menggunakan fungsi-fungsi berikut:

  • json.loads(): Menukarkan rentetan JSON menjadi data Python, mengambil satu argumen, iaitu rentetan yang ingin anda tafsirkan ke dalam Python.
  • json.dumps(): Menukarkan data Python kepada objek rentetan JSON, fungsi ini boleh mengambil sehingga empat(4) argumen, hanya argumen pertama yang wajib. Ia adalah seperti berikut.
    1. Data Python yang anda ingin tukarkan ke dalam JSON: ia boleh berupa jenis data berikut: kamus (dictionaries), senarai (lists), tuple, rentetan, integer, float, boolean, dan jenis data None.
    2. indent: bilangan ruang kosong yang anda ingin tambahkan di awal titik data
    3. separators: bahagian-bahagian yang anda ingin paparkan di antara dan/atau di hujung titik-titik data.
    4. sort_keys: menyusun kekunci kamus secara abjad jika anda sedang menukar jenis fail kamus.

Untuk memulakan, pergilah ke tanda X emas di pos kawalan di sebelah kiri dan berhadapan dengan meja yang mempunyai nota. Gunakan fungsi read() untuk mengesahkan maklumat yang diperlukan bagi mengesahkan status terminal dan catatkannya. Berjalan ke tanda X terang di hadapan terminal, terdapat satu pemalar bernama transmission, gunakan json.dumps() untuk memformatnya sebagai JSON supaya kita dapat menukarkannya, seperti ini: transmission = json.dumps(transmission).

Buat satu kamus bernama load dan simpan nilai json.loads() dengan pemalar transmission sebagai argumen. Ini akan menukarkan JSON kepada Python supaya maklumatnya boleh diakses dengan mudah. Gunakan fungsi speak() dengan kekunci yang dinyatakan dalam nota dan menggunakan kamus load yang anda buat. Sebagai contoh: player.speak(load[\"system\"]), lakukan ini untuk semua kekunci.

Selepas memeriksa maklumat pada terminal, berjalan ke bawah menuju stesen, masuk dan pergilah ke tanda X terang di atas permaidani hijau. Semak nota menggunakan fungsi read(), periksa dan catatkan nilai-nilai tersebut; dalam editor terdapat kamus yang telah ditulis awal bernama profile, isikan nilai yang hilang dengan maklumat dalam nota.

Berjalan ke tanda X gelap di atas permaidani hijau, berdepan terminal dan ciptakan pemboleh ubah bernama transfer dan simpan nilai json.dumps() serta tambah kamus profile sebagai satu-satunya argumen. Dengan melakukan ini kita menukarkan kamus ke dalam objek rentetan JSON. Gunakan fungsi display() yang telah ditulis awal dan tambah JSON transfer untuk menyimpan data dalam terminal.

Berjalan ke tanda X gelap di atas permaidani merah dan gunakan fungsi read() untuk mengesahkan data yang telah dimasukkan dalam terminal. Data tersebut tidak dipersembahkan dalam format yang betul; untuk menyimpan maklumat dengan betul, ia perlu disimpan dan diformat dalam JSON. Data disimpan dalam pemalar kamus yang dipanggil red_data; buat satu pemboleh ubah bernama red_storage dan simpan nilai fungsi json.dumps().

Untuk memformat data tersebut, tambahkan argumen berikut ke fungsi: tambah red_data untuk menukarkan pemalar ke JSON, tambah indent dan tetapkan kepada 5 untuk memformat teks, tambah separators dan tambahkan (\"- \", \" = \") untuk menambah simbol-simbol ini di akhir setiap baris. Baris tersebut sepatutnya kelihatan seperti ini: red_storage = json.dumps(red_data, indent=5, separators=(\"- \", \" = \")). Gunakan display() yang telah ditulis awal dan tambah rentetan JSON red_storage untuk menyimpan dan memaparkan data yang diformat.

Berjalan ke tanda X gelap di atas permaidani biru, berdepan terminal dan gunakan fungsi read(), seperti sebelumnya, data tidak disimpan dengan betul dan perlu diformat tetapi juga disusun. Data disimpan dalam pemalar bernama blue_data; buat satu pemboleh ubah bernama blue_storage dan simpan nilai fungsi json.dumps().

Untuk argumen: tambah blue_data untuk menukarkan pemalar ke JSON, tambah indent dan tetapkan kepada 4 untuk memformat teks, tambah separators dan tambahkan (\".0\", \" = \") untuk menambah simbol-simbol ini di akhir setiap baris. Selain itu, juga tambah argumen sort_keys sebagai argumen terakhir dan tetapkan kepada True, seperti ini: sort_keys=True. Gunakan display() yang telah ditulis awal dan tambah rentetan JSON blue_storage untuk menyimpan dan memaparkan data yang disusun dan lengkapkan tahap tersebut.

Buku Kod