2010年12月21日 星期二

Serializing Python Objects

此篇文章主要說用Python的Pickle module功能

1. 序列化(Serialization)
    將Python Object序列化時, 可使用pickle module的dumps方法
    ex.
>>> import pickle
>>> x = {'name':'allen', 'sex':'boy'}
>>> xs = pickle.dumps(x)
>>> xs
"(dp0\nS'name'\np1\nS'allen'\np2\nsS'sex'\np3\nS'boy'\np4\ns."

2. 反序列化(Deserialize)
    將序列化後的資料反序列化時, 可使用pickle module的loads方法
    ex.
>>> xsa = pickle.loads(xs)
>>> xsa
{'name': 'allen', 'sex': 'boy'}

3. 序列化(Serialization)至檔案
    如果要將 Python Object 序列化後資料儲存至檔案時,
    可使用 pickle module 的 dump 方法
    ex.
>>> import pickle
>>> x = {'name':'allen', 'sex':'boy'}
>>> f = open('c:/pyreadfile.txt', 'wb')
>>> pickle.dump(x, f)
>>> f.close()

4. 檔案反序列化(Deserialize)
    如果要將序列化的檔案反序列化時,
    可使用 pickle module 的 load 方法
    ex.
>>> f = open('c:/pyreadfile.txt', 'rb')
>>> a = pickle.load(f)
>>> f.close()
>>> print a
{'name': 'allen', 'sex': 'boy'}

參考網站
Saving a Python dict to a file using pickle
[python] 不錯的玩意, pickle與 shelve

沒有留言:

張貼留言