什么是序列化
站在用戶的角度思考問題,與客戶深入溝通,找到臨朐網(wǎng)站設(shè)計與臨朐網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、申請域名、虛擬主機(jī)、企業(yè)郵箱。業(yè)務(wù)覆蓋臨朐地區(qū)。什么是序列化,把程序中的對象或者變量,從內(nèi)存中轉(zhuǎn)換為可存儲或可傳輸?shù)倪^程稱為序列化。在 Python 中,這個過程稱為 pickling,在其他語言中也被稱為 serialization,marshalling,flattening 等。程序中的對象(或者變量)在序列化之后,就可以直接存放到存儲設(shè)備上,或者直接發(fā)送到網(wǎng)絡(luò)上進(jìn)行傳輸。
序列化的逆向過程,即為反序列化(unpickling),就是把序列化的對象(或者變量)重新讀到內(nèi)存中~
Python中序列化的模塊
模塊名稱 | 描述 | 提供的api |
---|---|---|
json | 用于實現(xiàn)Python數(shù)據(jù)類型與通用(json)字符串之間的轉(zhuǎn)換 | dumps()、dump()、loads()、load() |
pickle | 用于實現(xiàn)Python數(shù)據(jù)類型與Python特定二進(jìn)制格式之間的轉(zhuǎn)換 | dumps()、dump()、loads()、load() |
shelve | 專門用于將Python數(shù)據(jù)類型的數(shù)據(jù)持久化到磁盤,shelve是一個類似dict的對象,操作十分便捷 | open() |
json模塊
大部分編程語言都會提供處理json數(shù)據(jù)的接口,Python 2.6開始加入了json模塊,且把它作為一個內(nèi)置模塊提供,無需下載即可使用。
json支持的數(shù)據(jù)格式有限,有int str list dict以及特殊的tuple(會將tuple轉(zhuǎn)為list)
Json模塊提供了四個功能:dumps、dump、loads、load
dumps和loads主要是在內(nèi)存內(nèi)操作,如下:
import json list = ['a','b','c'] list_str = json.dumps(list) print(list_str) #["a", "b", "c"] list2 = json.loads(list_str) print(list2) #['a', 'b', 'c']