一.序列化概念
什么是序列化?
内存中的数据结构转成中间格式(json(所有编程语言通用)和pickle)存储到硬盘或基于网络状态
反序列化:
硬盘网络传来的数据格式转换成内存的数据结构
为什么
1.可以保存某一时间点的程序的运行状态
2.实现数据的跨平台交互 py和java的配合
json:优点是跨平台性好 支持常用的py数据类型 缺点是只能对应py的部分数据 例如不支持py的集合 还有自定义的数据类型
pickle:优点是可以识别所有的py的数据 缺点是只可以被python识别 不能跨平台
二.Json
import json dic={'name':'alvin','age':23,'sex':'male'} print(type(dic))#<class 'dict'> #序列化 j_str=json.dumps(dic) print(type(j_str))#<class 'str'> #写入文件 with open('序列化对象','w')as f: f.write(j_str)with open () as f:json.dump(dic,f)两步并作一步: #文件读取with open() as f: j_str=f.read() #转成内存的dic=json.loads(j_str) json不能识别单引号 只能识别双引号三.pickle import pickle dic={'name':'alvin','age':23,'sex':'male'} print(type(dic))#<class 'dict'> j=pickle.dumps(dic) print(type(j))#<class 'bytes'> f=open('序列化对象_pickle','wb')#注意是w是写入str,wb是写入bytes,j是'bytes' f.write(j) #-------------------等价于pickle.dump(dic,f) f.close() -------------------------反序列化 import pickle f=open('序列化对象_pickle','rb') data=pickle.loads(f.read())# 等价于data=pickle.load print(data['age']) 时间模块时间戳格式化字符串 time.strftime结构化时间time.localtime time.gmtimedatetime.datetime.now()时间戳经结构化转成格式化random模块
转载于:https://www.cnblogs.com/chicokiko/p/9202592.html
