• Python对象序列化


    对象就是抽象化的概念,比如列表、字典、元组都是对象,而对象序列化就是将对象持久化操作,把这种抽象化的概念持久化在磁盘上,将对象转换为字节数据和字符数据

    Python提供了pickle模块和json模块序列化对象

    pickle模块

    pickle模块可以将列表、字典、集合、类等序列化,将其转换为字节数据

    dumps():将对象序列化为字节数据

    1. import pickle
    2. a = [1,2,3,4]
    3. date = pickle.dumps(a)
    4. print(date)
    5. f = open("a.dat","wb")
    6. f.write(date)
    7. f.close()

    b'\x80\x04\x95\r\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03K\x04e.'

    loads():将字节数据反序列化为对象

    1. import pickle
    2. f = open("a.dat","rb")
    3. show = f.read()
    4. show = pickle.loads(show)
    5. print(show)

    [1, 2, 3, 4]

    dump():将对象序列化为字节数据并且保存在文件中

    1. import pickle
    2. a = [1,2,3]
    3. x = pickle.dump(a,open("a.dat","wb"))
    4. f = open("a.dat","rb")
    5. print(f.read())

    b'\x80\x04\x95\x0b\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03e.'

    load():自动读取文件并且将字节数据反序列化为对象

    1. import pickle
    2. x = pickle.load(open("a.dat","rb"))
    3. print(x)

    [1, 2, 3]

    json模块

    json模块可以将列表、字典、集合、类等序列化,将其转换为字符数据

    注意:json一般是用来操作字典对象

    dumps():将对象序列化为字符数据

    1. import json
    2. a = {"name":"张三","age":18}
    3. x = json.dumps(a)
    4. f = open("a.txt","w")
    5. f.write(x)
    6. print(x)

    {"name": "\u5f20\u4e09", "age": 18}

    loads():将字符数据反序列化为对象

    1. import json
    2. f = open("a.txt","r")
    3. x = f.read()
    4. x = json.loads(x)
    5. print(x)

    {'name': '张三', 'age': 18}

    dump():将对象序列化为字符数据并且保存在文件中

    1. import json
    2. a = {"name":"李四","age":18}
    3. x = json.dump(a,open("a.txt","w"))
    4. f = open("a.txt","r")
    5. print(f.read())

    {"name": "\u674e\u56db", "age": 18}

    load():自动读取文件并且将字符数据反序列化为对象

    1. import json
    2. x = json.load(open("a.txt","r"))
    3. print(x)

    {'name': '李四', 'age': 18}

    总结:dump和load都会比dumps和loads便捷使用

  • 相关阅读:
    请求的接口响应状态为已取消的原因
    TypeScript中的类型
    Android Studio 汉化
    调优过程中缓存的处理
    训练人工智能机器人的软实力
    计算机毕业设计课题题目列表信息
    数据结构之七大排序
    SpringBoot @InitBinder注解绑定请求参数
    Robust Lane Detection from Continuous Driving
    《用Go语言自制解释器》之第5章 宏系统
  • 原文地址:https://blog.csdn.net/Thewei666/article/details/126576731