pydantic 和抽象类的子类

2024-03-14

我正在尝试将 pydantic 与如下所示的架构一起使用:

class Base(BaseModel, ABC):
    common: int

class Child1(Base):
    child1: int

class Child2(Base):
    child2: int

class Response(BaseModel):
    events: List[Base]


events = [{'common':1, 'child1': 10}, {'common': 2, 'child2': 20}]

resp = Response(events=events)

resp.events
#Out[49]: [<Base common=10>, <Base common=3>]

它只获取了 Base 类的字段,忽略了其余部分。我如何将 pydantic 与这种继承一起使用?我希望事件是子类实例的列表Base


现在最好的方法是使用Union, 就像是

class Response(BaseModel):
    events: List[Union[Child2, Child1, Base]]

请注意 Union 中的顺序很重要:pydantic 会将您的输入数据与Child2, then Child1, then Base;因此,您的上述事件数据应该得到正确验证。看这个警告关于Union order https://pydantic-docs.helpmanual.io/usage/types/#unions.

在未来歧视者 https://github.com/samuelcolvin/pydantic/issues/619也许能够以更强大的方式做类似的事情。

还有更多有关相关事宜的信息这个问题 https://github.com/samuelcolvin/pydantic/issues/854.

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

pydantic 和抽象类的子类 的相关文章

  • 用于将 cython 中的许多 C++ 类包装到单个共享对象的项目结构

    我在文档 邮件列表和这个问题在这里 https stackoverflow com questions 10300660 cython and distutils 但我想得到一个更直接的答案来解决我的具体情况 我正在通过尝试一点一点地包装我
  • 使用 psycopg2 在 python 中执行查询时出现“编程错误:语法错误位于或附近”

    我正在运行 Python v 2 7 和 psycopg2 v 2 5 我有一个 postgresql 数据库函数 它将 SQL 查询作为文本字段返回 我使用以下代码来调用该函数并从文本字段中提取查询 cur2 execute SELECT
  • Django 代理模型的继承和多态性

    我正在开发一个我没有启动的 Django 项目 我面临着一个问题遗产 我有一个大模型 在示例中简化 称为MyModel这应该代表不同种类的物品 的所有实例对象MyModel应该具有相同的字段 但方法的行为根据项目类型的不同而有很大差异 到目
  • Python 中的 Lanczos 插值与 2D 图像

    我尝试重新缩放 2D 图像 灰度 图像大小为 256x256 所需输出为 224x224 像素值范围从 0 到 1300 我尝试了两种使用 Lanczos 插值来重新调整它们的方法 首先使用PIL图像 import numpy as np
  • Python(Selenium):如何通过登录重定向/组织登录登录网站

    我不是专业程序员 所以请原谅任何愚蠢的错误 我正在做一些研究 我正在尝试使用 Selenium 登录数据库来搜索大约 1000 个术语 我有两个问题 1 重定向到组织登录页面后如何使用 Selenium 登录 2 如何检索数据库 在我解决
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 绘制方程

    我正在尝试创建一个函数 它将绘制我告诉它的任何公式 import numpy as np import matplotlib pyplot as plt def graph formula x range x np array x rang
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • Python 的“zip”内置函数的 Ruby 等价物是什么?

    Ruby 是否有与 Python 内置函数等效的东西zip功能 如果不是 做同样事情的简洁方法是什么 一些背景信息 当我试图找到一种干净的方法来进行涉及两个数组的检查时 出现了这个问题 如果我有zip 我可以写这样的东西 zip a b a
  • IO 密集型任务中的 Python 多线程

    建议仅在 IO 密集型任务中使用 Python 多线程 因为 Python 有一个全局解释器锁 GIL 只允许一个线程持有 Python 解释器的控制权 然而 多线程对于 IO 密集型操作有意义吗 https stackoverflow c
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • Jupyter Notebook 内核一直很忙

    我已经安装了 anaconda 并且 python 在 Spyder IPython 等中工作正常 但是我无法运行 python 笔记本 内核被创建 它也连接 但它始终显示黑圈忙碌符号 防火墙或防病毒软件没有问题 我尝试过禁用两者 我也无法
  • 对年龄列进行分组/分类

    我有一个数据框说df有一个柱子 Ages gt gt gt df Age 0 22 1 38 2 26 3 35 4 35 5 1 6 54 我想对这个年龄段进行分组并创建一个像这样的新专栏 If age gt 0 age lt 2 the
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 有没有办法检测正在运行的代码是否正在上下文管理器内执行?

    正如标题所述 有没有办法做到这样的事情 def call back if called inside context print running in context else print called outside context 这将
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • Python 类继承 - 诡异的动作

    我观察到类继承有一个奇怪的效果 对于我正在处理的项目 我正在创建一个类来充当另一个模块的类的包装器 我正在使用第 3 方 aeidon 模块 用于操作字幕文件 但问题可能不太具体 以下是您通常如何使用该模块 project aeidon P

随机推荐

  • 在哪里可以找到示例 XHTML5 源代码?

    我在哪里可以找到样品XHTML 5 页面 我主要想知道是否可以将 XHTML 5 与其他 XML 语言 如 XHTML 1 混合搭配 例如 这样的内容在 XHTML 5 中有效吗
  • Netbeans 不允许 Python 2.6 作为默认平台(强制 Jython2.5)

    我试图让 Netbeans python 使用设置为 Python 2 6 1 我的系统 python 的默认 python 平台运行 因此在 Netbeans 中我执行以下操作 工具 gt Python 平台将 Python 2 6 1
  • 为什么数组协方差被认为如此可怕?

    在 NET 中 引用类型数组是协变的 这被认为是一个错误 但是 我不明白为什么这这么糟糕 请考虑以下代码 string strings new Hey there object objects strings objects 0 new o
  • 我应该在哪里存储配置文件?

    我需要通过Win8在WinXP中读取和写入配置文件到Windows磁盘 他们最好在哪里做这件事 ProgramData 文件夹似乎不允许 procedure TfrmMain FormCreate Sender TObject var pa
  • 输入验证以确保只有数字 c++

    好的 我正在尝试擅长使用指针 因此我正在尝试为用户输入编写输入验证 以确保正确处理任何非数字的内容 当我使用 isdigit 时 它对我不起作用 当我输入字母表时 我仍然遇到异常 有什么建议么 谢谢 看一下这个 include
  • 如何隐藏 Windows Gtk 应用程序的命令提示符?

    我正在使用 MinGW 工具链在 Windows 中编译 Gtk 应用程序 但是当我运行我的应用程序时 会出现一个命令提示符窗口 怎样才能让这个提示消失呢 Check 本文 http ricardo ecn wfu edu cottrell
  • ajax 调用循环 - 访问循环计数器?

    我被困在这里 任何帮助将不胜感激 我有一个项目列表框 我想通过 AJAX 调用 Web 服务 检索列表中每个项目的数据 需要根据调用数据的行来操作检索到的数据 如果我传入 row 参数 它的值始终比行数大 1 有没有办法传入 ajax 调用
  • 使用 lapply 和 which 按特征和功能对数据帧进行子集化

    我有一个包含 5 个维度数据的数据框 如下所示 gt dim alldata 1 162 6 gt head alldata value layer Kmultiplier Resolution Season Variable 1 0 01
  • JPA GROUP BY 实体 - 这可能吗?

    是否可以在 JPA 中选择数据并按引用实体分组 我的意思是 我有两个实体 保险和参考多对一车辆 保险实体具有 validTill 字段 当然还有车辆字段 我想选择车辆及其最新的保险 下面的查询不起作用 SELECT DISTINCT v v
  • 如何在Pygame环境中绘制矩形和圆形

    我正在尝试创建一个具有各种形状的精灵的 pygame 环境 但我的代码似乎不起作用 这是我所拥有的 class Object pygame sprite Sprite def init self position color size ty
  • 在 codeigniter 中一起更新和连接查询?

    连接两个表时更新数据 但在 where 条件下出现错误 我可以在查询中同时使用连接和更新吗 这是我的代码 public function update model id array data textArea data textdata t
  • 在 C 中访问 ELF 符号表

    我正在编写一个程序来模仿elfdump ecps 目前它可以正确打印 elf 标头 程序标头和节标头 但我陷入了符号表的最后几个部分 所需的输出格式为 Symbol Table Section dynsym index value size
  • 如何显示图片并获取鼠标点击坐标[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想知道是否可以在Python Windows 中显示一些图片 然后用鼠标单击该图片并获取该单击相对于图片边缘的坐标 Thanks 是
  • Android 4.0 -> 4.3(包含) - Web 视图页面之间的 Web 存储丢失

    我正在开发一个 Android 项目 该项目依赖于WebView浏览设备上存储的多个 HTML 页面 并在需要将输入存储到数据库时将输入提交到 Web 视图 每个页面都包含与 jQuery 绑定到上一页 下一页的控件 每个页面包含不同类型的
  • Linux Mach-O 反汇编器

    是否有任何 Linux 程序可以像 objdump 一样反汇编 OSX 通用 x86 x86 64 fat Mach O 二进制文件 GNU binutils 的 objdump 支持 ELF 和 Windows PE 文件 但不支持 Ma
  • 什么是对象关系映射框架? [复制]

    这个问题在这里已经有答案了 正如标题所说 什么是 ORM 框架以及它有什么用处 一个简单的答案是 您可以使用编程语言将表或存储过程包装在类中 这样您就可以使用对象的方法和属性 而不是编写 SQL 语句来与数据库交互 换句话说 而不是这样的
  • 如何使用负 z-index 使链接可点击?

    我在用drop down我的标题中的菜单用于通知 但是当下拉打开所有可见的 div 后面时 我给了z index到所有 div 但这些 div 上的链接现在不可点击 下拉 div CSS drop down overflow scroll
  • 未捕获错误:语法错误,无法识别的表达式:悬停

    这是问题的 JSFidle http jsfiddle net LRTh3 36 http jsfiddle net LRTh3 36 div boxes mousedown function event Error on this lin
  • Cognito / S3 用户特定策略

    我使用适用于 Android 的 AWS 开发工具包和 Cognito 对我的 AWS 资源的用户进行身份验证 通过 Amazon 登录 我是什么尝试要做的就是设置一个 S3 存储桶 如下所示 my bucket email protect
  • pydantic 和抽象类的子类

    我正在尝试将 pydantic 与如下所示的架构一起使用 class Base BaseModel ABC common int class Child1 Base child1 int class Child2 Base child2 i