pickle模塊個base64模塊的使用

pickle模塊的使用pickle模塊是python的標準模塊,提供了對於python數據的序列化操作,可以將數據轉換爲bytes類型,其序列化速度比json模塊要高。

pickle.dumps() 將python數據序列化爲bytes類型
	
pickle.loads() 將bytes類型數據反序列化爲python的數據類型

測試

  >>> import pickle
    >>> d = {'1': {'count': 10, 'selected': True}, '2': {'count': 20, 'selected': False}}
    >>> s = pickle.dumps(d)
    >>> s
  b'\x80\x03}q\x00(X\x01\x00\x00\x001q\x01}q\x02(X\x05\x00\x00\x00countq\x03K\nX\x08\x00\x00\x00selectedq\x04\x88uX\x01\x00\x00\x002q\x05}q\x06(h\x03K\x14h\x04\x89uu.'

>>> pickle.loads(s)
{'1': {'count': 10, 'selected': True}, '2': {'count': 20, 'selected': False}}

結論

pickle.dumps() 
將python 的數據轉換成bytes類型(ASCII)
pickle.loads()
將bytes(ASCII)類型轉換成python數據類型

base64模塊的使用
Base64是一種基於64個可打印字符來表示二進制數據的表示方法。由於2^6=64,所以每6個比特爲一個單元,對應某個可打印字符。3個字節有24個比特,對應於4個Base64單元,即3個字節可由4個可打印字符來表示。在Base64中的可打印字符包括字母A-Z、a-z、數字0-9,這樣共有62個字符,此外兩個可打印符號在不同的系統中而不同。
Base64常用於在通常處理文本數據的場合,表示、傳輸、存儲一些二進制數據,包括MIME的電子郵件及XML的一些複雜數據。
python標準庫中提供了base64模塊,用來進行轉換

 base64.b64encode() 將bytes類型數據進行base64編碼,返回編碼後的bytes類型
    	
  base64.b64deocde() 將base64編碼的bytes類型進行解碼,返回解碼後的bytes類型

測試:

 >>> import base64
    >>> s
    b'\x80\x03}q\x00(X\x01\x00\x00\x001q\x01}q\x02(X\x05\x00\x00\x00countq\x03K\nX\x08\x00\x00\x00selectedq\x04\x88uX\x01\x00\x00\x002q\x05}q\x06(h\x03K\x14h\x04\x89uu.'>>> b = base64.b64encode(s)
    >>> b
    b'gAN9cQAoWAEAAAAxcQF9cQIoWAUAAABjb3VudHEDSwpYCAAAAHNlbGVjdGVkcQSIdVgBAAAAMnEFfXEGKGgDSxRoBIl1dS4='
    >>> base64.b64decode(b)
    b'\x80\x03}q\x00(X\x01\x00\x00\x001q\x01}q\x02(X\x05\x00\x00\x00countq\x03K\nX\x08\x00\x00\x00selectedq\x04\x88uX\x01\x00\x00\x002q\x05}q\x06(h\x03K\x14h\x04\x89uu.

結論

base64.b64encode() 將bytes(ASCII)類型進行base64編碼,返回成bytes類型(str)
base64.b64deocde() 將base64編碼的bytes類型進行解碼,返回解碼後的bytes類型
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章