当前位置: 首页 > article >正文

Python中对象序列化以及反序列化的方法

面对Python代码中, 如果我们想用一个Class来进行数据的序列化和反序列化的话, 可能用普通的方式会加大执行过程, 如同我们有这样的一个例子:

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_

class Data:
    params: None


data = [
    {
        'params': 'Medusa'
    },
    {
        'params': 0
    }
]

如果我们想把data用Data实例的方式组成数组, 你可能需要直接将数据进行实例, 并将实例对象用列表装载, 当然了, 你可以进行for循环进行实例并添加到一个事先声明的列表中, 那你可能想到生成器了, 更加简单, 就可以实现该需求, 那我们试想一下, 怎么把我们生成的列表对象还原成data数据呢?

在Python代码里面, 我们当然可以实现, 可能在实现方法上没有那么美观了。

这个时候我们需要这样做:

python -m pip install attrs
python -m pip install cattrs

安装attrs和cattrs这两个库, 那我们怎么使用呢? 看例子:

#!/usr/bin/env python
# _*_ coding: UTF-8 _*_
from attr import attrs, attrib
from cattr import structure, unstructure


@attrs
class Data:
    params = attrib()


data = {
    'params': 'Medusa',
}

instance = structure(data, Data)
json = unstructure(instance)

我们输出一下instance和json的值:

# instance:
Data(params='Medusa')

# json:
{'params': 'Medusa'}

并且我们使用instance.params所得到的值为Medusa, 看到这儿你是不是知道怎么在对象之间序列化和反序列化了? 是的, 当然了, 你可能有更好的库, 欢迎你的留言分享哦~


http://www.kler.cn/a/469047.html

相关文章:

  • GWAS数据和软件下载
  • 基于物联网的冻保鲜运输智能控制系统
  • JavaScript语言的字符串处理
  • 软件工程期末复习(一)
  • element-plus大版本一样,但是小版本不一样导致页面出bug
  • 数据分析思维(七):分析方法——群组分析方法
  • Day 22:数据库与 Spring Data JPA
  • Unity3D仿星露谷物语开发17之空库存栏UI
  • vue3如何实现防抖?
  • atrust异常导致ERR_NETWORK_CHANGED
  • 2025-01-04 Unity插件 YodaSheet2 —— 基础用法
  • vscode中设置默认格式化工具pretter
  • 【图像处理】数据集合集!
  • 【软考网工笔记】计算机基础理论与安全——网络安全
  • 借助提示词工程,解锁高效应用开发之道
  • 计算机网络--UDP和TCP课后习题
  • 限时特惠,香港服务器,低至53元/年
  • 数据结构漫游记:初识栈(stack)
  • 探秘 AI Agent 之 Coze 智能体:从简介到搭建全攻略(4/30)
  • 超大规模分类(二):InfoNCE
  • ffmpeg之yuv格式转h264
  • 人工智能-Python网络编程-TCP
  • 数据库基础:SQL 与 NoSQL 的区别与应用场景
  • BERT的中文问答系统61
  • 桌面开发 的设计模式(Design Patterns)核心知识
  • Qt实现使用TCP与RS485串口设备通信————附带详细实践方法