定义 Pydantic(嵌套)模型

2024-04-09

如果我使用 GET (给定一个 id),我会得到一个 JSON,如下所示:

{
    "data": {
        "id": "81",
        "ks": {
            "k1": 25,
            "k2": 5
        },
        "items": [
            {
                "id": 1,
                "name": "John",
                "surname": "Smith"
            },
            {
                "id": 2,
                "name": "Jane",
                "surname": "Doe"
            }
        ]
    },
    "server-time": "2021-12-09 14:18:40"
}

对于特定情况(如果 id 不存在):

{
    "data": {
        "id": -1,
        "ks": "",
        "items": []
    },
    "server-time": "2021-12-10 09:35:22"
}

我想创建一个 Pydantic 模型来管理这个数据结构(我的意思是正式定义这些对象)。 通过创建类(可能是嵌套的)来管理此数据结构的最明智的方法是什么?


我建议通过官方教程 https://fastapi.tiangolo.com/tutorial/深入了解该框架如何使用 pydantic 处理数据模型创建和验证。

回答你的问题:

from datetime import datetime
from typing import List
from pydantic import BaseModel


class K(BaseModel):
    k1: int
    k2: int


class Item(BaseModel):
    id: int
    name: str
    surname: str


class DataModel(BaseModel):
    id: int = -1
    ks: K = None
    items: List[Item] = []
    server_time: datetime = datetime.now()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

定义 Pydantic(嵌套)模型 的相关文章

随机推荐

  • 有没有办法强制 NHTMLUNIT 忽略页面 JavaScript 错误并继续脚本执行?

    我是 ASP NET 和 C 项目的一部分 我们正在努力使我们的 asp net 门户对 Google 搜索引擎友好 https developers google com webmasters ajax crawling https de
  • 将事件日志组织到文件夹中

    我想要创建多个服务 并且希望它们将每个服务记录在我指定的同一目录 文件夹下的日志条目中 这样当我打开 Windows 事件查看器时 我可以看到它们全部放置在一个文件夹中 例如 service1 将登录到 service1 log servi
  • jQuery 禁用/启用提交按钮

    我有这个 HTML
  • 在cmake中设置boost的最低版本

    我想定义系统上可用的最低增强版本 我尝试了以下方法 不幸的是 这不起作用 因为它尝试在系统上仅提供 boost 1 40 0 的情况下进行编译 SET Boost USE STATIC LIBS OFF SET Boost USE MULT
  • WPF/控制台混合应用程序

    我编写了一个可以在命令行上运行或使用 WPF UI 运行的应用程序 STAThread static void Main string args Does magic parse args and sets IsCommandLine to
  • C++ 多重定义错误

    我的 Headers h 文件包含基本的 C 标头 include
  • 在 Sequelize 迁移中创建关联

    节点js 续集4 41 尝试通过另一个表制作两个多对多关系的模型 跑步与续集 cli 例如 sequelize model generate name Camera attributes name string sn string 这里是模
  • 复杂圆图

    我花了很多时间尝试在 SVG D3 js 中复制所附的图表 我最接近的是使用附加的代码 我已经探索过使用树函数 但只能创建一组圆圈 所附代码的问题是 通过手动输入每个圆圈必须位于的像素坐标 很难使其看起来平滑且智能 作为信息 数据集只会为这
  • 在哪里记录 C 或 C++ 中的函数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个包含多个文件的 C 程序 所以我有 例如 stuff c它实现了一些功能 并且stuff h与函数原型 我应该如何在注释中记录功能 我应
  • * 或 & 的位置重要吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中 为什么星号在变量名之前 而不是在类型之后 https stackoverflow com questions 398395 in c why is the asterisk before th
  • 如何创建不重复的随机数?

    我正在尝试为老年之家创建一款宾果游戏 我能够使用用于扫描数组的随机数生成器来制作一个 但问题是需要很长时间 2 分钟 来搜索数组并确保没有重复的双精度数 我做了一些研究 发现 c 中称为伪随机的东西在创建时不会重复数字 但代码看起来非常复杂
  • 枚举 Node.js net.Server 连接

    是否可以循环遍历与某个连接建立的连接相对应的所有套接字对象 网络服务器 http nodejs org api net html net class net serverNode js 中的实例 最终 我需要关闭所有连接 似乎执行此操作的唯
  • 如何使大循环的联合范围更快

    我有一个子程序 在循环中进行大约 5000 次迭代后 它变得非常慢 否则很快 Windows 8 1 专业版 64 位 Excel 2013 15 0 4701 1001 MSO 15 0 4701 1000 64 位 Sub UnionS
  • 如何为DBGrid特殊单元格着色?

    我有一列只有 是 和 否 值 我想要如果列值为 是 则只有单元格背景颜色为红色 否则 否 则背景颜色为黄色 但这段代码为整行着色 if ADOTable1 FieldByName Clubs AsString yes then begin
  • C函数分析(地址似乎有偏移)

    我正在尝试使用 finstrument functions 选项来分析函数调用 基本上 我所做的是将以下内容写入任何已编译的源代码中 static int stepper 0 void cyg profile func enter void
  • 根据列中的值对完整行进行着色

    我需要根据列中单元格的值对整个 Excel 行进行着色 我有三列 Item Price and Status 并且想要为该行着色 如果Status值为 已交付 至绿色 拒绝 对红色 WIP 至橙色 您可以为此使用 非 VBA 条件格式 如果
  • Boost::MPL Vector 和 For_Each:如何将 avector 打印为元组?

    想象一下 我们有一个 mpl vector 我们想将其打印 例如 cout 为这样的字符串 int string char 如何使用 boost mpl 来做这样的事情 创建一个函子并调用 boost for each struct pri
  • 如何使用一个可观察量的状态来跳过另一个可观察量的值?

    通过一个简短的例子可以最好地解释这一点 假设这是我想要过滤的可观察源 Observable interval 1 TimeUnit SECONDS 我使用复选框来处理过滤器状态 当未选中该框时 我想跳过所有值 我使用 RxAndroid 来
  • 如何让 Gitlab CI Pipeline 始终运行某些作业,而仅在合并请求时运行其他作业?

    TL DR 我的目标是拥有一个 Gitlab CE 12 4 2 管道 该管道仅在合并请求上执行某些作业 而始终执行其他作业 在合并请求上和所有正常推送上 必须如何 gitlab ci yml想要这样做吗 我的用例 我有一个运行大量作业的大
  • 定义 Pydantic(嵌套)模型

    如果我使用 GET 给定一个 id 我会得到一个 JSON 如下所示 data id 81 ks k1 25 k2 5 items id 1 name John surname Smith id 2 name Jane