用pickle存储Python的原生对象方法

发布时间 - 2026-01-11 00:52:42    点击率:

在Python中存储数据到文件中时,简单的做法是调用open函数执行文件写入操作,但是这样做的话,当我们要重新读取文件内容时,就会出现类型不匹配的情况,因为读取的都是字符串的形式,所以还需要进行类型转换,这样不简洁。

或者使用eval函数把字符串转换为对象,但是有时它过于强大,它会执行Python的任何表达式,甚至做出威胁系统正常工作的表达式,这样做不安全。

如果想存储Python原生对象,但又无法信赖文件的数据来源,那么pickle模块会是个理想的选择。

pickle模块是能够让我们直接在文件中存储几乎任何Python对象的高级工具,并不要求我们把字符串转换来转换去,像是个超级通用的数据格式化和解析工具。

demo.py:

D = {'name':'Allen', 'age':21}
f = open('p_data.pkl','wb')
import pickle
pickle.dump(D,f)
f.close()

f=open('p_data.pkl','rb')
e=pickle.load(f)
print(e)
print(type(e))

控制台输出:

{'name': 'Allen', 'age': 21}
<class 'dict'>
[Finished in 0.4s]

然后它会在指定路径下生成p_data.pkl文件:

8003 7d71 0028 5804 0000 006e 616d 6571
0158 0500 0000 416c 6c65 6e71 0258 0300
0000 6167 6571 034b 1575 2e

如果控制台提示”attributeError:'module' object has no attribute ‘dump'”,那么很可能是因为你的文件名命名为”pickle.py”,这与内置模块文件重名了,改一下就可以了。。

以上这篇用pickle存储Python的原生对象方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。


# python  # pickle  # 存储  # Python Pickle 实现在同一个文件中序列化多个对象  # Python pickle模块实现对象序列化  # Python使用pickle模块储存对象操作示例  # Python中的数据对象持久化存储模块pickle的使用示例  # Python pickle类库介绍(对象序列化和反序列化)  # 从零学python系列之浅谈pickle模块封装和拆封数据对象的方法  # Python3 pickle对象串行化代码实例解析  # 是个  # 给大家  # 这样做  # 都是  # 就会  # 是因为  # 让我们  # 会在  # 希望能  # 很可能  # 还需要  # 当我们  # 这篇  # 但又  # 它会  # 转换为  # 这与  # 命名为  # 小编  # 不安全 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用景安虚拟主机手机版绑定域名建站?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  大同网页,大同瑞慈医院官网?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Laravel Pest测试框架怎么用_从PHPUnit转向Pest的Laravel测试教程  Laravel如何创建自定义Facades?(详细步骤)  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  进行网站优化必须要坚持的四大原则  浅谈Javascript中的Label语句  如何在建站主机中优化服务器配置?  网易LOFTER官网链接 老福特网页版登录地址  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  微信小程序 input输入框控件详解及实例(多种示例)  Laravel如何处理CORS跨域请求?(配置示例)  Laravel的辅助函数有哪些_Laravel常用Helpers函数提高开发效率  Laravel如何使用Laravel Vite编译前端_Laravel10以上版本前端静态资源管理【教程】  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  网站优化排名时,需要考虑哪些问题呢?  大型企业网站制作流程,做网站需要注册公司吗?  如何在万网自助建站平台快速创建网站?  详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点  Laravel怎么实现支付功能_Laravel集成支付宝微信支付  JavaScript如何操作视频_媒体API怎么控制播放  如何用美橙互联一键搭建多站合一网站?  如何自定义safari浏览器工具栏?个性化设置safari浏览器界面教程【技巧】  ai格式如何转html_将AI设计稿转换为HTML页面流程【页面】  Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑  laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法  Laravel安装步骤详细教程_Laravel环境搭建指南  Mybatis 中的insertOrUpdate操作  如何彻底删除建站之星生成的Banner?  微信小程序 wx.uploadFile无法上传解决办法  Midjourney怎样加参数调细节_Midjourney参数调整技巧【指南】  学生网站制作软件,一个12岁的学生写小说,应该去什么样的网站?  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  个人摄影网站制作流程,摄影爱好者都去什么网站?  php打包exe后无法访问网络共享_共享权限设置方法【教程】  谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复  如何在阿里云虚拟主机上快速搭建个人网站?  如何彻底卸载建站之星软件?  Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理  js实现点击每个li节点,都弹出其文本值及修改  如何用搬瓦工VPS快速搭建个人网站?  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  利用python获取某年中每个月的第一天和最后一天  如何为不同团队 ID 动态生成多个独立按钮  laravel怎么用DB facade执行原生SQL查询_laravel DB facade原生SQL执行方法