• json和pickle模块


    什么是序列化?

      序列化就是将内存中的数据类型转换成另外一种格式

      即:

        字典==>序列化==>其他的格式==>存到硬盘

        硬盘==>读取==>其他格式==>反序列化==>字典

      

    为什么要序列化

      1, 持久爆出程序的运行状态

      2, 数据的跨平台交互

    如何序列化

      json 

        优点: 这个格式是一种通用的格式,所有编程语言都能识别

        缺点: 不能识别所有python类型

        强调: json格式不能识别单引号

      pickle

        优点: 能识别所有python类型

        缺点: 只能被python这门编程语言识别

    import json
    
    dic={'k1':True,'k2':10,'k3':'egon','k4':'你好啊'}
    
    # # # 序列化
    dic_json=json.dumps(dic)
    print(dic_json,type(dic_json))
    
    # # # 持久化
    with open('a.json',mode='wt',encoding='utf-8') as f:
        f.write(dic_json)
    
    #运行结果
    {"k1": true, "k2": 10, "k3": "egon", "k4": "u4f60u597du554a"} <class 'str'>
    
    
    #a.json中的内容
    {"k1": true, "k2": 10, "k3": "egon", "k4": "u4f60u597du554a"}
    # 序列化+持久化 (会在a.json中直接写入)
    with open('a.json',mode='wt',encoding='utf-8') as f:
        json.dump(dic,f)
    # # 从文件中读取json格式化的字符
    with open('a.json',mode='rt',encoding='utf-8') as f:
        dic_json=f.read()
    #
    # # 反序列化
    dic=json.loads(dic_json)
    print(dic,dic['k1'])
    
    # 读取文件内容+发序列化
    with open('a.json',mode='rt',encoding='utf-8') as f:
        dic=json.load(f)
        print(dic['k1'])
    
    
    #运行结果
    {'k1': True, 'k2': 10, 'k3': 'egon', 'k4': '你好啊'} True
    True
  • 相关阅读:
    Spring源码解析-AutowiredAnnotationBeanPostProcessor
    Spring源码解析-基于注解依赖注入
    Spring源码解析-事件
    Spring源码解析-AOP简单分析
    Spring源码解析-实例化bean对象
    Spring源码解析-配置文件的加载
    linux 条件判断式
    Assembly.LoadFrom加载程序集类型转换失败解决方法
    autodesk fbx sdk sample里面的工程无法调试解决方法
    Unity ---WidgetsUI CreateTileView Demo
  • 原文地址:https://www.cnblogs.com/kp1995/p/10073056.html
Copyright © 2020-2023  润新知