python基础之Day18

一.序列化概念

什么是序列化?

内存中的数据结构转成中间格式(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.gmtime

datetime.datetime.now()
时间戳经结构化转成格式化

random模块





原文地址:https://www.cnblogs.com/chicokiko/p/9202592.html