Kursus Pembangunan Python Lanjutan
Bab
>
Tahap

Modul Serialization
Modul JSON

Objektif

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

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

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

  • json.loads(): Menukarkan rentetan JSON kepada data Python, mengambil satu argumen, iaitu rentetan yang anda ingin parse ke dalam Python.
  • json.dumps(): Menukarkan data Python kepada objek rentetan JSON, fungsi ini boleh mengambil sehingga empat(4) argumen, hanya argumen pertama yang diwajibkan untuk menggunakan fungsi ini. Ia adalah seperti berikut.
    1. Data Python yang anda ingin tukarkan kepada JSON: ia boleh terdiri daripada jenis data berikut: kamus, senarai, tuple, rentetan, integer, perpuluhan, boolean, dan jenis data None.
    2. indent: bilangan ruang yang ingin anda tambah di permulaan setiap titik data
    3. separators: ini adalah bahagian yang anda ingin muncul antara dan/atau di hujung titik data
    4. sort_keys: menyusun kekunci kamus mengikut abjad jika anda menukarkan jenis fail kamus.

Untuk memulakan, pergi ke tanda X emas di pos penjagaan sebelah kiri dan hadap kaunter dengan memo. Gunakan fungsi read() untuk mengesahkan maklumat yang diperlukan untuk mengesahkan status terminal dan catatkan.

Berjalan ke tanda X terang di hadapan terminal, terdapat sebuah pemalar bernama transmission, gunakan json.dumps() untuk memformatnya sebagai json supaya kita dapat menukarnya, seperti ini: transmission = json.dumps(transmission).

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

Selepas memeriksa maklumat di terminal, berjalanlah ke stesen, masuk ke dalam dan pergi ke tanda X terang di atas karpet hijau. Periksa memo menggunakan fungsi read(), semak dan catat nilai-nilai, dalam editor terdapat kamus yang telah ditulis terlebih dahulu bernama profile, isikan nilai yang hilang dengan maklumat yang terdapat dalam memo.

Berjalan ke tanda X gelap di atas karpet hijau, hadap terminal dan cipta satu pembolehubah bernama transfer dan simpan nilai daripada json.dumps() serta tambahkan kamus profile sebagai satu-satunya argumen. Dengan cara ini, kita menukarkan kamus tersebut kepada objek rentetan JSON. Gunakan fungsi display() yang telah ditulis terlebih dahulu dan tambahkan rentetan JSON transfer untuk menyimpan data di terminal.

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

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

Berjalan ke tanda X gelap di atas karpet biru dan hadap terminal serta gunakan fungsi read(), seperti sebelum ini, data tidak disimpan dengan betul dan perlu diformat serta disusun. Data tersebut disimpan dalam satu pemalar yang dipanggil blue_data, cipta satu pembolehubah bernama blue_storage dan simpan nilai daripada fungsi json.dumps().

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

Buku Kod