zoukankan      html  css  js  c++  java
  • Python学习笔记--对象的序列化和反序列化

    import os
    
    print(os.path.dirname(r'C:UsersADDesktop	emp1大哥哥.wav'))
    
    # json模块有四个比较重要的函数,分别是:
    #
    # dump - 将Python对象按照JSON格式序列化到文件中
    # dumps - 将Python对象处理成JSON格式的字符串
    # load - 将文件中的JSON数据反序列化成对象
    # loads - 将字符串的内容反序列化成Python对象
    
    
    # 序列化(serialization)在计算机科学的数据处理中,
    # 是指将数据结构或对象状态转换为可以存储或传输的形式,
    # 这样在需要的时候能够恢复到原先的状态,而且通过序列化的数据重新获取字节时,
    # 可以利用这些字节来产生原始对象的副本(拷贝)。
    # 与这个过程相反的动作,即从一系列字节中提取数据结构的操作,就是反序列化(deserialization)
    
    # json.dumps将一个Python数据结构转换为JSON:
    import json
    
    test_dict = {
        'a': 1,
        'b': [2, 3],
        'c': ['d', 'ef']
    }
    data1 = json.dumps(test_dict)
    print(data1)  # {"a": 1, "b": [2, 3], "c": ["d", "ef"]}
    print(type(data1))  # <class 'str'>
    
    # json.loads将一个JSON编码的字符串转换回一个Python数据结构
    data2 = json.loads(data1)
    print(data2, type(data2))  # {'a': 1, 'b': [2, 3], 'c': ['d', 'ef']} <class 'dict'>
    
    # json.dump() 和 json.load() 来编码和解码JSON数据,用于处理文件
    with open('test.json', 'w') as file:
        json.dump(data2, file)
    
    with open('test.json', 'r') as file:
        data = json.load(file)
        print(type(data))  # <class 'dict'>
  • 相关阅读:
    协方差矩阵
    SLAM中的关键帧是什么?有什么用?如何选择关键帧?
    EKF算法与非线性优化算法的比较
    LC217 存在重复元素
    LC42 接雨水
    LC20 有效的括号
    LC3 无重复最长子串
    LC4 寻找两个有序数组的中位数
    ubuntu16.04下安装g2o
    小米 各版本手机系统包 线刷包 卡刷包
  • 原文地址:https://www.cnblogs.com/jifeng0902/p/14707272.html
Copyright © 2011-2022 走看看