Tuesday, December 23, 2014

Buku Pemrograman Python - Serialisasi dan deserialisasi Data



Sinopsis

Bekerja dengan melibatkan banyak data seperti algoritma computer vision, machine learning yang harus disimpan variabelnya kedalam sebuah disk. Kasus yang melibatkan type data bersifat multidimensi seperti misalkan pada kasus machine learning yang menghasilkan sebuah bobot dalam bentuk matrix,  hal ini tentu akan menyulitkan jika disimpan dalam bentuk database relational, tentu kita harus menyiapkan type data berupa struct, array, dan lainnya. Dalam python hal tersebut bisa menggunakan pickle (kalau di Matlab kalian bisa simpan data dalam format *.mat).

Mengenai Pickle

Ada beberapa catatan penting mengenai pickle

  1. In Python 2, you can speed up your pickle access with cPickle. (In Python3, importing pickle will automatically use the accelerated version if it is available.)
  2. Kamu bisa menggunakan pickle ataupun cPickle. Tapi ingat, ketika menerima data berformat biner (serialisasi di python) sebuah dari jaringan, kamu harus hati-hati karena bisa juga berisikan kode jahat! Pickle files can be hacked. If you receive a raw pickle file over the network, don't trust it! It could have malicious code in it, that would run arbitrary python when you try to de-pickle it.
Disini tidak membahas mengenai pickle akan tetapi menggunakan pickle untuk menyimpan sebuah data. Oiya kalian bisa belajar dari buku pemrograman python dengan package opensource

Contoh Pickle



#tutorial untuk serialisasi dan deserialisasi
import pickle as pc
import numpy as np

print '\n' *100 #bersihkan layar

a = np.array([[1,2,3],[4,5,6]]);

fileName = 'D:/data.objek'
fileObj = open(fileName,'wb')
pc.dump(a,fileObj)

fileObj.close()

fileObj2 = open(fileName,'r')
b = pc.load(fileObj2)
print 'data b ', b     
 



Kasus diatas, penulis menggunakan library numpy sebagai contoh saja yaitu untuk menulis dan membaca kembali lagi, tentu itu kasus kecil, kamu bisa menyimpan sebuah class atau object yang lainnya dalam python. Jadi kalian tidak perlu kuatir lagi menyimpan data/objek di Python.

Referensi

  1. https://freepythontips.wordpress.com/2013/08/02/what-is-pickle-in-python/
  2. http://www.diveintopython3.net/serializing.html
  3. http://pymotw.com/2/pickle/

No comments:

Post a Comment