Persistensi Data Python - Modul JSON
JSON adalah singkatan dari JavaScript Object Notation. Ini adalah format pertukaran data yang ringan. Ini adalah format teks lintas platform dan tidak bergantung bahasa, didukung oleh banyak bahasa pemrograman. Format ini digunakan untuk pertukaran data antara web server dan klien.
Format JSON mirip dengan acar. Namun, serialisasi acar adalah khusus Python sedangkan format JSON diimplementasikan oleh banyak bahasa sehingga telah menjadi standar universal. Fungsionalitas dan antarmuka modul json di pustaka standar Python mirip dengan modul acar dan marshal.
Sama seperti modul acar, modul json juga menyediakan dumps() dan loads() fungsi untuk serialisasi objek Python menjadi string yang dikodekan JSON, dan dump() dan load() fungsi menulis dan membaca objek Python berseri ke / dari file.
dumps() - Fungsi ini mengubah objek menjadi format JSON.
loads() - Fungsi ini mengubah string JSON kembali ke objek Python.
Contoh berikut menunjukkan penggunaan dasar dari fungsi-fungsi ini -
import json
data=['Rakesh',{'marks':(50,60,70)}]
s=json.dumps(data)
json.loads(s)
Fungsi dumps () bisa mengambil argumen sort_keys opsional. Secara default, ini adalah False. Jika disetel ke True, kunci kamus muncul dalam urutan yang diurutkan dalam string JSON.
Fungsi dumps () memiliki parameter opsional lain yang disebut indentasi yang mengambil angka sebagai nilai. Ini memutuskan panjang setiap segmen representasi terformat dari string json, mirip dengan keluaran cetak.
Modul json juga memiliki API berorientasi objek yang sesuai dengan fungsi di atas. Ada dua kelas yang ditentukan dalam modul - JSONEncoder dan JSONDecoder.
Kelas JSONEncoder
Objek kelas ini adalah encoder untuk struktur data Python. Setiap tipe data Python diubah dalam tipe JSON yang sesuai seperti yang ditunjukkan pada tabel berikut -
Python | JSON |
---|---|
Dict | obyek |
daftar, tuple | Himpunan |
Str | tali |
int, float, int- & float-turunan Enum | jumlah |
Benar | benar |
Salah | Salah |
Tidak ada | batal |
Kelas JSONEncoder dibuat oleh konstruktor JSONEncoder (). Berikut metode penting yang didefinisikan di kelas encoder -
Sr.No. | Metode & Deskripsi |
---|---|
1 | encode() membuat serial objek Python ke dalam format JSON |
2 | iterencode() Mengkodekan objek dan mengembalikan iterator yang menghasilkan bentuk yang dikodekan dari setiap item dalam objek. |
3 | indent Menentukan tingkat indentasi dari string yang dikodekan |
4 | sort_keys benar atau salah untuk membuat kunci muncul dalam urutan yang diurutkan atau tidak. |
5 | Check_circular jika Benar, periksa referensi melingkar di objek tipe kontainer |
Contoh berikut mengkodekan objek daftar Python.
e=json.JSONEncoder()
e.encode(data)
Kelas JSONDecoder
Objek kelas ini membantu dalam mendekode dalam string json kembali ke struktur data Python. Metode utama di kelas ini adalah decode (). Kode contoh berikut mengambil objek daftar Python dari string yang disandikan pada langkah sebelumnya.
d=json.JSONDecoder()
d.decode(s)
Modul json mendefinisikan load() dan dump() berfungsi untuk menulis data JSON ke file seperti objek - yang dapat berupa file disk atau aliran byte dan membaca kembali data darinya.
membuang()
Fungsi ini menulis data objek Python JSONed ke sebuah file. File harus dibuka dengan mode 'w'.
import json
data=['Rakesh', {'marks': (50, 60, 70)}]
fp=open('json.txt','w')
json.dump(data,fp)
fp.close()
Kode ini akan membuat 'json.txt' di direktori saat ini. Ini menunjukkan isinya sebagai berikut -
["Rakesh", {"marks": [50, 60, 70]}]
beban()
Fungsi ini memuat data JSON dari file dan mengembalikan objek Python darinya. File harus dibuka dengan izin baca (harus memiliki mode 'r').
Example
fp=open('json.txt','r')
ret=json.load(fp)
print (ret)
fp.close()
Output
['Rakesh', {'marks': [50, 60, 70]}]
Itu json.tool modul juga memiliki antarmuka baris perintah yang memvalidasi data dalam file dan mencetak objek JSON dengan cara yang cukup diformat.
C:\python37>python -m json.tool json.txt
[
"Rakesh",
{
"marks": [
50,
60,
70
]
}
]