python進階(3)序列化與反序列化

序列化與反序列化

按照某種規則,把記憶體中的數據保存到文件中,文件是一個位元組序列,所以必須要把記憶體數據轉換成為位元組序列,輸出到文件,這就是序列化;反之,從文件的位元組恢復到記憶體,就是反序列化;
 
python中序列化與反序列化用到的是json模組
 

json模組

  • dump 將編碼結果保存到文件對象或流中
  • load 從網路或者磁碟中讀取json數據,對其中的json數據解碼,返回python數據
  • dumps 將編碼的結果以字元串形式返回
  • loads 對其中的json數據進行解碼,返回python數據
'''
序列化
'''
def dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True,
        allow_nan=True, cls=None, indent=None, separators=None,
        default=None, sort_keys=False, **kw):

  obj: 需要序列化的對象
  fp: 序列化到哪個文件中
  ensure_ascii:當為false時,寫入fp的字元串可以包含非ascii字元,當你的obj中含有中文,必須加上ensure_ascii=true
  indent:當為正整數時,代表縮進格數,美化列印,一般為4
  sort_keys:如果為true,則字典將按鍵排序

'''
反序列化
'''
def load(fp, *, cls=None, object_hook=None, parse_float=None,
        parse_int=None, parse_constant=None, object_pairs_hook=None, **kw):