zoukankan      html  css  js  c++  java
  • day16 序列化

    概念
        序列化是指将某种数据类型做一种特殊的字符串形式处理,方便数据类型的存取以及传输。
     
    意义
        在程序中,如果需要用到一些数据存放个人信息,比如用户名和密码字典类型,那么会在多种场景下需要用到这个数据。如果将该数据用作全局变量,一方面不安全,另一方面也很不方便,让所有的程序都来调用这个变量不现实。所以需要一个文件专门用来存储该数据类型。但是由于一般情况下从文件中读取出来的都是字符串数据类型,已经不再是原来的字典类型了,导致数据不可用。这个时候就需要用到序列化,通过序列化,可以对数据类型作特殊的序列化处理,存储在文件中,需要用到该数据类型时,通过反序列化就可以还原原有的数据类型。总而言之,一方面为了数据类型的存储,另一反面,为了方便数据的传输。
     
    如何实现序列化
        json模块:对多种编程语言通用,只有部分数据类型能序列化。(dict list tuple str int float false true None)
            用于数据的存取:dump load
           import json
        f=open('testseq',encoding='utf-8',mode='w')
        dict1={'张三':16,'王五':18}
        json.dump(dict1,f)
        f.close()
        s=open('testseq',encoding='utf-8')
        k=json.load(s)
        print(k,type(k))    //{'张三': 16, '王五': 18} <class 'dict'>
        s.close()
     
        用于数据的传输:dumps loads
          dict2={'张三':16,'王五':18}
        str_dict2=json.dumps(dict2,ensure_ascii=False)
        print(str_dict2,type(str_dict2))    //{"张三": 16, "王五": 18} <class 'str'>
        ret=json.loads(str_dict2)
        print(ret,type(ret))      //  {'张三': 16, '王五': 18} <class 'dict'>
     
      pickle模块:只在python中使用,所有数据类型都可以序列化。具体用法和json模块一样
  • 相关阅读:
    如何添加看板娘(转载的)
    golang gin LoadHTMLGlob 加载模板文件
    wpf Popup 不跟随窗口移动的问题
    golang 在vscode 安装插件失败的解决方法
    javaweb + tomcat + 部署 + 域名绑定 + 默认首页
    【RabbitMQ】三种Exchange模式——订阅、路由、通配符模式
    一切的浮点型进行计算操作都要用BigDecimal
    如何让mysql按照两个或多个字段排序
    JAVA枚举操作(获取值,转map集合)
    gitlab 配置 ssh key
  • 原文地址:https://www.cnblogs.com/spacetime-party/p/13062736.html
Copyright © 2011-2022 走看看