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


Posted in Python onApril 28, 2017

在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 相关文章推荐
Eclipse中Python开发环境搭建简单教程
Mar 23 Python
Python多维/嵌套字典数据无限遍历的实现
Nov 04 Python
基于Django的ModelForm组件(详解)
Dec 07 Python
python自动12306抢票软件实现代码
Feb 24 Python
Python 中Pickle库的使用详解
Feb 24 Python
python绘制圆柱体的方法
Jul 02 Python
Python list列表中删除多个重复元素操作示例
Feb 27 Python
完美解决python针对hdfs上传和下载的问题
Jun 05 Python
keras实现调用自己训练的模型,并去掉全连接层
Jun 09 Python
python闭包与引用以及需要注意的陷阱
Sep 18 Python
Python获取指定网段正在使用的IP
Dec 14 Python
python如何构建mock接口服务
Jan 28 Python
Python标准库之collections包的使用教程
Apr 27 #Python
Golang与python线程详解及简单实例
Apr 27 #Python
Mac中升级Python2.7到Python3.5步骤详解
Apr 27 #Python
详解Python 2.6 升级至 Python 2.7 的实践心得
Apr 27 #Python
Python中创建字典的几种方法总结(推荐)
Apr 27 #Python
Python中index()和seek()的用法(详解)
Apr 27 #Python
Python中几种导入模块的方式总结
Apr 27 #Python
You might like
在PHP中利用XML技术构造远程服务(下)
2006/10/09 PHP
Thinkphp中的volist标签用法简介
2014/06/18 PHP
php中PDO方式实现数据库的增删改查
2015/05/17 PHP
Zend Framework框架Smarty扩展实现方法
2016/03/22 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
csdn 论坛技术区平均给分功能
2009/11/07 Javascript
return false;和e.preventDefault();的区别
2010/07/11 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
JS 实现获取打开一个界面中输入的值
2013/03/19 Javascript
根据选择不同的下拉值出现相对应的文本输入框
2013/08/01 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
node.js中的http.request.end方法使用说明
2014/12/10 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
2015/08/30 Javascript
JS高仿抛物线加入购物车特效实现代码
2017/02/20 Javascript
Vue2.0如何发布项目实战
2017/07/27 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
Vue实现数据请求拦截
2019/10/23 Javascript
JavaScript实现商品评价五星好评
2020/11/30 Javascript
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
Python中使用haystack实现django全文检索搜索引擎功能
2017/08/26 Python
详解python爬虫系列之初识爬虫
2019/04/06 Python
Python 3.6打包成EXE可执行程序的实现
2019/10/18 Python
pytorch使用 to 进行类型转换方式
2020/01/08 Python
分布式全文检索引擎ElasticSearch原理及使用实例
2020/11/14 Python
英国No.1文具和办公用品在线:Euroffice
2016/09/21 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
美国在线购买和出售礼品卡网站:EJ Gift Cards
2019/06/09 全球购物
欧洲最大的高尔夫零售商:American Golf
2019/09/02 全球购物
施工安全生产承诺书
2014/05/23 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
2014年十一国庆节活动方案
2014/09/16 职场文书
店铺转让协议书(2014版)
2014/09/23 职场文书
党员民主评议总结
2014/10/20 职场文书
使用Java去实现超市会员管理系统
2022/03/18 Java/Android
选购到合适的激光打印机
2022/04/21 数码科技