迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Python >

在 Python 中将数据类转换为 JSON

作者:迹忆客 最近更新:2023/06/19 浏览次数:

在本篇文章中,我们将了解 Python 如何支持 JSON 来为每个 JSON 根节点创建数据类。 我们还将学习 dataclass 作为 Python 字典的实现。


在 Python 中将数据类转换为 JSON

JavaScript Object Notation 或 JSON 表示使用由编程语言的文本组成的脚本(可执行)文件来存储和传输数据。

Python 通过 JSON 内置模块支持 JSON。 因此,我们将 JSON 包导入到 Python 脚本中以利用此功能。

JSON 中使用的带引号的字符串包含键值映射中的值。 它可以与 Python 的字典相媲美。

Python 原生支持 JSON 功能,并且 JSON 显示类似于标准库中的 marshal 和 pickle 模块用户的 API。

另一方面,数据类创建用于在其中存储数据的数据传输对象; 这些对象需要适当的定义方法来进行相等比较,有时用于显示。

dataclass 用于为数据传输类创建方法和短语法。

在 Python 中将数据类实现为字典

Python 3.7 及更高版本是唯一支持数据类装饰器的版本。 它产生一个对象,通常称为数据传输对象,其唯一功能是存储数据。

问题在于,为这些对象提供正确的功能需要创建用于相等比较、显示等的方法。

这些方法的开发必须是劳动密集型的并且容易出错。 数据类为您生成所有这些方法,为数据传输类提供了一个简短的语法。

它使用略有改动(并且更有效)的 dataclasses.asdict 版本进行序列化。

第一次将 JSON 反序列化为数据类实例时,您正在遍历数据类字段并为每个注释类型创建一个解析器,这使得该过程在重复时更加有效。

在 Python 中为每个 JSON 根节点创建一个数据类

由于“users”字段是一个包含“id”和“name”的对象数组,我们可以看出我们需要构造两个类:“Test”和“User”。

示例代码:

from dataclasses import dataclass
from typing import List

@dataclass
class User:
    id: 1
    name: "Kelvin"

@dataclass
class Test:
    id: 2
    userid:" Jack"
users: List[User]

每个 JSON 属性都应映射到类型安全的 Python 属性。

以下代码将每个 JSON 节点和属性映射到 Python 类和属性。 为此,我们在 Python 类中创建了一个静态方法,负责将我们的字典映射到您的 Python 属性。

示例代码:

from typing import List
from dataclasses import dataclass, asdict, field
from json import dumps

@dataclass
class Students:
    id: 1
    name: "stu1"

    @property
    def __dict__(self):
        return asdict(self)

    @property
    def json(self):
        return dumps(self.__dict__)

test_object_1 = Students(id=1, name="Kelvin")
print(test_object_1.json)

输出:

{"id": 1, "name": "Kelvin"}

请记住,数据传输对象是由数据类创建的,用于在其中存储数据。 因此,这些对象需要正确的方法定义来进行相等比较和偶尔显示。

数据传输类的方法和语法是使用数据类创建的。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Pandas read_csv()函数

发布时间:2024/04/24 浏览次数:254 分类:Python

Pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 DataFrame 中。

Pandas 追加数据到 CSV 中

发布时间:2024/04/24 浏览次数:352 分类:Python

本教程演示了如何在追加模式下使用 to_csv()向现有的 CSV 文件添加数据。

Pandas 多列合并

发布时间:2024/04/24 浏览次数:628 分类:Python

本教程介绍了如何在 Pandas 中使用 DataFrame.merge()方法合并两个 DataFrames。

Pandas loc vs iloc

发布时间:2024/04/24 浏览次数:837 分类:Python

本教程介绍了如何使用 Python 中的 loc 和 iloc 从 Pandas DataFrame 中过滤数据。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便