欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > python >内容正文

python

python 笔记 pickle json

发布时间:2025/4/5 python 40 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。