• python中的序列化和反序列化


    ~~~~~~滴滴,,什么是序列呢?可以理解为序列就是字符串。
    序列化的应用
    • 写文件(数据传输)
    • 网络传输
    序列化和反序列化的概念
     
    • 序列化模块:将原本的字典、列表等内容转换成一个字符串的过程就叫做序列化。
    • 序列化:内存中的对象转换为字节序列(字符串)
    • 反序列化:将字节序列转换为内存中的对象
    序列化的目的:
    1.以某种存储形式是自定义对象持久化
    2.将对象从一个地方传递到另一个地方
    3.使程序更具有维护性

    各种模块的特点和应用

    1.json模块:通用的序列化格式 只有很少的一部分数据类型通过json转化为字符串

    可以进行序列化的:数字 字符串 元组 列表   不能转集合
    1.dumps() 序列化方法
    dic={'a':'1',"b":'2'}
    print(type(dic),dic)
    import json
    str_dic=json.dumps(dic)
    print(type(str_dic),str_dic)
    结果:

    <class 'dict'> {'a': '1', 'b': '2'}
    <class 'str'> {"a": "1", "b": "2"}

    2.loads反序列化方法
    dic_d=json.loads(str_dic)
    print(type(dic_d),dic_d)
    结果;
    <class 'dict'> {'a': '1', 'b': '2'}
    3.dump和load  不加s  和文件相关的操作
    import json
    dic={'a':'1',"b":'2'}
    f=open('fff','w',encoding='utf-8')
    json.dump(dic,f)
    f.close()

    f=open('fff')
    res=json.load(f)
    print(type(res),res)
    结果:
    <class 'dict'> {'a': '1', 'b': '2'}
    当出现中文的时候:加上下面的参数,文件中显示的就是中文了
    ***ensure_ascii=False

    json.dump({'国籍':'美国'},f,ensure_ascii=False) ret = json.dumps({'国籍':'美国'},ensure_ascii=False)
     
     

     

    2.pickle模块:所有的python中的数据类型都可以转化 但只有pyth理解,且部分反序列化依赖代码

    pickle模块提供了四个功能:dumps、dump(序列化,存)、loads(反序列化,读)、load  (不仅可以序列化字典,列表...可以把python中任意的数据类型序列化

     

    3.shelve模块:序列化句柄 直接操作,方便

    此模块只提供给我们一个open方法,使用key来访问的,使用起来和字典类似

  • 相关阅读:
    20171229
    对象关系型数据库管理系统(PostgresQL )
    CDN技术之--集群服务与负载均衡
    CDN技术之-介绍
    oracle不同用户间访问表不添加用户名(模式)前缀
    ora-28000 the account is locked
    CDN技术之--该技术概述
    CDN技术之--内容缓存工作原理
    PL/SQL题型代码示例
    在java中使用solr7.2.0 新旧版本创建SolrClient对比
  • 原文地址:https://www.cnblogs.com/lxx99/p/11772587.html
Copyright © 2020-2023  润新知