zoukankan      html  css  js  c++  java
  • 学习python第十一天,函数3 函数的序列化和反序列化

    
    
    我们把变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。
    反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化,即unpickling。

    一、存文件,序列化
    info = {
        'name':'alex',
        'age':22 }
    f =open("test.text","w")#存文件
    f.write(str(info))
    f.close()
    

       

    二、取文件 反序列化
    f =open("test.text","r")#以写的形式打开存文件
    data=f.read()
    f.close()
    print(data)
    
    
    

      

     
    三、如果要把字符串变字典单独取age值
    1 data=eval(f.read())
    2 print(data['age'])



    四、使用模块序列化,高级版的序列化json+dumps
    import json
     f =open("test.text","w")#存文件,序列化
     #print(json.dumps(info))
     f.write(json.dumps(info))
     f.close()
    

      



    四-(1)使用模块序列化,序列化两次json+dumps
     import json
     info = {
          'name':'alex',
          'age':22 }
     f =open("test.text","w")#存文件,序列化
     #print(json.dumps(info))
     f.write(json.dumps(info))
     info['age']=21             #修改age
     f.write(json.dumps(info))
     f.close()
    
    
    

     使用模块序反列化,没办法反序列化两个字典



    五、使用模块高级版的反序列化json+ loads
    import json
     f =open("test.text","r")#取文件,反序列化
     #print(json.dumps(info))
     data=json.loads(f.read())
     print(data['age'])
     f.close()
    
    
    

      

     

    六,处理更加复杂的数据的序列化使用picke+dumps+loads
     import pickle
      def sayhi(name):
          print("hello,",name)
      info = {
         'name':'alex',
          'age':22,
          'func':sayhi
      }
      f =open("test.text","wb")#默认为二进制需改wb
     f.write(pickle.dumps(info))
     print(pickle.dumps(info))
     f.close()
    

      


    七,处理更加复杂的数据的序列化使用picke+dump+loads
    import pickle
    def sayhi(name):
        print("hello,",name)
    info = { 'name':'alex',
        'age':22,
        'func':sayhi}
    f = open("test.text","wb")
    pickle.dump(info,f) #=f.write( pickle.dumps( info) )
    f.close()
  • 相关阅读:
    G1垃圾收集器入门-原创译文
    Dubbo微容器(Cooma)详解
    Dubbo工程结构和Maven打包
    Greys学习笔记(未完待续)
    ES学习笔记
    CSS标准盒子模型和IE怪异盒子模型
    npm install 报错
    安卓手机scrollTop失效问题记录
    npm run dev报错
    severless扫盲
  • 原文地址:https://www.cnblogs.com/buildydream/p/10171938.html
Copyright © 2011-2022 走看看