日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python 笔记 pickle json

發布時間:2025/4/5 python 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python 笔记 pickle json 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1? 數據序列化

????????文件系統,機器學習,大數據等,都少不了數據文件。Python 提供了一些比較方便序列化的存儲的組件。

???????? 什么是序列化(Serialization)呢,就是把像字典,列表這類的數據,打包保存在電腦硬盤中。

2 pickle

2.1 序列化成一串字節

import pickledata = ['Shanghai','浦東新區','20211206'] pickle.dumps(data) ''' b'\x80\x03]q\x00(X\x08\x00\x00\x00Shanghaiq\x01X\x0c\x00\x00\x00\xe6\xb5\xa6\xe4\xb8\x9c\xe6\x96\xb0\xe5\x8c\xbaq\x02X\x08\x00\x00\x0020211206q\x03e.' '''

????????可以看到這個字典被 pickle 以后,已經面目全非,你不能直接讀出來里面的信息,因為這些信息已經被編碼了。

????????所以當你在用 pickle 進行序列化的時候,需要考慮你需不需要能看懂被打包的數據,如果沒有這個需求,那你就可以用 pickle。有的話,建議使用后面將要涉及的json。

2.2 序列化成一個文件

import pickledata = ['Shanghai','浦東新區','20211206'] f=open('data.pkl','wb') pickle.dump(data,f) f.close()

?注意這里一定要是'wb‘,如果是'w'的話,會報如下的錯誤:

TypeError: write() argument must be str, not bytes

但是這個data.pkl的文件,人是沒法直接看懂的:

?2.3 反序列化文件

f1=open('data.pkl','rb') data=pickle.load(f1) data ''' ['Shanghai', '浦東新區', '20211206'] '''''' 對比一下直接read: '''f=open('data.pkl','rb') f.read() ''' b'\x80\x03]q\x00(X\x08\x00\x00\x00Shanghaiq\x01X\x0c\x00\x00\x00\xe6\xb5\xa6\xe4\xb8\x9c\xe6\x96\xb0\xe5\x8c\xbaq\x02X\x08\x00\x00\x0020211206q\x03e.' '''

3 json

Python 中的 json 庫,就是來處理 json 形式的數據的。

一般來說,Python 里的字典,列表都可以是 json 數據格式。

3.1 用json 序列化

import jsondata = ['Shanghai','浦東新區','20211206'] j = json.dumps(data)print(j) print(type(j))''' ["Shanghai", "\u6d66\u4e1c\u65b0\u533a", "20211206"] <class 'str'> '''

相比于pickle,json序列化之后的內容是可讀的,變成了一個字符串形式的列表

3.2 序列化至文件

大體用法和pickle一致

import jsondata = ['Shanghai','浦東新區','20211206']f=open('data.json','w') json.dump(data,f) f.close()

相比于pickle,內容是可讀的?

3.3 反序列化文件

大體用法和pickle一致

f=open('data.json','r') json.load(f) ''' ['Shanghai', '浦東新區', '20211206'] '''''' 對比一下read ''' f=open('data.json','r') f.read() ''' '["Shanghai", "\\u6d66\\u4e1c\\u65b0\\u533a", "20211206"]' '''

4 pickle和json的比較

?5 其他序列化

numpy? 有專門的 npz格式文件,見:

python包介紹:numpy_UQI-LIUWJ的博客-CSDN博客? 第五小節

總結

以上是生活随笔為你收集整理的python 笔记 pickle json的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。