pickle模塊和json模塊
阿新 • • 發佈:2017-06-17
import 報錯 地址 with pickle模塊 傳輸 文件中 運行 註意
不要把文件命名為模塊名
#pickle模塊
序列化
import pickle
dic = {‘name‘:‘dodo‘,‘age‘:18}
print(pickle.dumps(dic))#轉成了bytes類型
with open(‘a.pickle‘,‘wb‘)as f:#存
f.write(pickle.dumps(dic))
#簡單方法
pickle.dump(dic,open(‘b.pickle‘,‘wb‘))
反序列化
with open(‘a.pickle‘,‘rb‘)as f:#取
date = pickle.loads(f.read())
print(date)
#簡單方法
res = pickle.load(open(‘b.pickle‘,‘rb‘))
print(res)
"""
註意:pickle可以序列化任意的py數據類型
序列化函數的時候要註意,序列化的是函數名,也就是內存地址
當換文件去讀pickle文件存的函數方法的時候,因為函數沒有在當前文件中
所以函數體沒有被加載進內存,所以執行的時候回報錯
"""
#json模塊
"""
序列化:程序的運行在內存運行,內存斷電數據就沒了,把內存的數據存下來,存到硬盤中
在硬盤中都是文件進行操作的,文件中存的是字符串,內存中可能有字典,列表
等,要想原樣存儲,就用一個中間過程,就是序列化,最終成為字符串存儲到硬盤
中。
為什麽要序列化:1.持久保持程序運行狀態
2.跨平臺傳輸數據
"""
"""
json支持的類型
字典、整形、字符串、列表、bool、null
pickle支持所有Python類型
"""
pickle模塊和json模塊