python中的序列化与反序列化
生活随笔
收集整理的這篇文章主要介紹了
python中的序列化与反序列化
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
之前,在學習python時,一直弄不明白pickle和json模塊的序列化和反序例化之間的區別和用法,最近閑來有時間,重新研究了這兩個模塊,也算是基本搞明白他們之中的區別了。
用于序列化的兩個模塊,
- json,用于字符串 和 python數據類型間進行轉換
- pickle,用于python特有的類型 和 python的數據類型間進行轉換
Json模塊提供了四個功能:dumps、dump、loads、load
pickle模塊提供了四個功能:dumps、dump、loads、load
?
看下面這個例子,或許你能明白他們之間的區別
import pickledata = ['aa', 'bb', 'cc'] # dumps 將數據通過特殊的形式轉換為只有python語言認識的字符串 p_str = pickle.dumps(data) print(p_str) # loads 將pickle數據轉換為python的數據結構 mes = pickle.loads(p_str) print(mes)# dump 將數據通過特殊的形式轉換為只有python語言認識的字符串,并寫入文件 with open('tmp.pw','wb') as f:pickle.dump(data,f)# load 從數據文件中讀取數據,并轉換為python的數據結構 with open('tmp.pw','rb') as f:print(pickle.load(f))json和pickle模塊中的dump和load操作其實就是對數據進行編碼和解碼的處理
- 編碼:把一個Python對象編碼轉換成Json字符串 ? json.dumps()
- 解碼:把Json格式字符串解碼轉換成Python對象 ? json.loads()
?
轉載于:https://www.cnblogs.com/change1220/p/8484932.html
總結
以上是生活随笔為你收集整理的python中的序列化与反序列化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 由浅入深理解----java反射技术
- 下一篇: 原神华清归藏密室怎么解开封印?