博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
pickle序列化与反序列化 + eval说明
阅读量:5049 次
发布时间:2019-06-12

本文共 1235 字,大约阅读时间需要 4 分钟。

import pickle # #1、从文件中读取pickle格式 with open('egon.json','rb') as f:     pkl=f.read() #2、将json_str转成内存中的数据类型 dic=pickle.loads(pkl) print(dic['a']) #1和2可以合作一步 with open('db.pkl','rb') as f:     dic=pickle.load(f) print(dic['a']) # pickle 的序列化 import json,pickle s={1,2,3} # json.dumps(s) pickle.dumps(s) import pickle dic={'a':1,'b':2,'c':3} # 1 序列化 pkl=pickle.dumps(dic)  # 字典序列化后变成字节,不是字符串 print(pkl,type(pkl)) # #2 写入文件 with open('db.pkl','wb') as f:  # 对应的写入文件就应该是wb模式写入     f.write(pkl) # 1和2可以合作一步 with open('db.pkl','wb') as f:     pickle.dump(dic,f)
# json格式不能识别单引号,全都是双引号 import json with open('db1.json','rt',encoding='utf-8') as f:     json.load(f) json.loads('{"name":"egon"}') import json print(json.loads("{'name':'egon'}"))  #会报错,json文件里不存在单引号。反序列化对象里面不能有单引号 with open('db.json','wt',encoding='utf-8') as f:     l=[1,True,None]     json.dump(l,f) # 用json反序列化 with open('db.json','rt',encoding='utf-8') as f:     l=json.load(f)     print(l) # 用eval反序列化:eval只是单纯的将文件里的字符串运行变成对应的数据类型,而不会把json文件里卖弄的true,null转换成True,None with open('db.json','rt',encoding='utf-8') as f:     s=f.read() #s ='[1, true, null]'     dic=eval(s) #eval('[1, true, null]')     print(dic['name'])

转载于:https://www.cnblogs.com/Roc-Atlantis/p/9204211.html

你可能感兴趣的文章
Codeforces 450 C. Jzzhu and Chocolate
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
ACdream 1115 Salmon And Cat (找规律&&打表)
查看>>
JSON、JSONP、Ajax的区别
查看>>
AngularJS学习篇(一)
查看>>
【转载】 IP实时传输协议RTP/RTCP详解
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
Linux系统的数据写入机制--延迟写入
查看>>
css3动画——基本准则
查看>>
javaweb常识
查看>>
Java注解
查看>>
时间>金钱
查看>>
元数据元素
查看>>
Visual Studio Code 构建C/C++开发环境
查看>>
web自己主动保存表单
查看>>
一个小的日常实践——高速Fibonacci数算法
查看>>
创建与删除索引
查看>>
java的基本数据类型
查看>>
机器学些技法(9)--Decision Tree
查看>>
静态页面复习--用semantic UI写一个10min首页
查看>>