zoukankan      html  css  js  c++  java
  • 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模块





  • 相关阅读:
    ORM是什么?
    mysql 杂谈
    IO model之IO多路复用的触发方式
    IO model之select poll epoll IO多路复用介绍
    IO model
    事件驱动模型介绍
    函数
    商品程序
    随机生成密码
    import radom 和import string
  • 原文地址:https://www.cnblogs.com/chicokiko/p/9202592.html
Copyright © 2011-2022 走看看