• 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便捷使用

  • 相关阅读:
    体系结构27_多处理机(1)
    分布式数字身份:通往Web3.0世界的个人钥匙
    数据结构-线性表与链性表(二)
    智慧公厕:不放过任何“卫生死角”,为公共厕所装上“净化系统”。
    Linux文件锁内核VFS层源码实现讲解
    配置七牛云的自定义域名以及配置域名CNAME
    防火墙双机热备实验
    浙江大学数据结构MOOC-课后习题-第十讲-排序4 统计工龄
    【前端】Jquery UI +PHP 实现表格拖动排序
    go语言|数据结构:单链表(1)
  • 原文地址:https://blog.csdn.net/Thewei666/article/details/126576731