Persistensi Data Python - Serialisasi Objek

Objek file bawaan Python yang dikembalikan oleh fungsi open () bawaan Python memiliki satu kekurangan penting. Ketika dibuka dengan mode 'w', metode write () hanya menerima objek string.

Artinya, jika Anda memiliki data yang direpresentasikan dalam bentuk non-string apa pun, objek baik dalam kelas bawaan (angka, kamus, daftar, atau tupel) atau kelas yang ditentukan pengguna lainnya, itu tidak dapat ditulis ke file secara langsung. Sebelum menulis, Anda perlu mengubahnya menjadi representasi stringnya.

numbers=[10,20,30,40]
   file=open('numbers.txt','w')
   file.write(str(numbers))
   file.close()

Untuk file biner, argumen ke write()metode harus berupa objek byte. Misalnya, daftar bilangan bulat diubah menjadi byte olehbytearray() fungsi dan kemudian ditulis ke file.

numbers=[10,20,30,40]
   data=bytearray(numbers)
   file.write(data)
   file.close()

Untuk membaca kembali data dari file dalam tipe data masing-masing, konversi terbalik perlu dilakukan.

file=open('numbers.txt','rb')
   data=file.read()
   print (list(data))

Jenis konversi manual ini, dari objek ke string atau format byte (dan sebaliknya) sangat rumit dan membosankan. Dimungkinkan untuk menyimpan status objek Python dalam bentuk aliran byte langsung ke file, atau aliran memori dan mengambil ke keadaan aslinya. Proses ini disebut serialisasi dan de-serialisasi.

Pustaka bawaan Python berisi berbagai modul untuk serialisasi dan proses deserialisasi.

Sr.No. Nama & Deskripsi
1

pickle

Pustaka serialisasi khusus Python

2

marshal

Perpustakaan digunakan secara internal untuk serialisasi

3

shelve

Ketekunan objek pythonic

4

dbm

perpustakaan menawarkan antarmuka ke database Unix

5

csv

perpustakaan untuk penyimpanan dan pengambilan data Python ke format CSV

6

json

Library untuk serialisasi ke format JSON universal