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模块一样
  • 相关阅读:
    把程序的定义与实现部分用头文件与源文件分开
    简单控件的应用(二)—学生管理系统
    Java基础14
    创建插入符、输出不同效果的文字
    Java基础12
    简单控件的应用(一)—prj计算器
    简单的Win 32 Application
    最简单的音乐播放器
    消息处理初步
    基于MFC,在非客户区与客户区利用CButon类创建button
  • 原文地址:https://www.cnblogs.com/spacetime-party/p/13062736.html
Copyright © 2011-2022 走看看