使用 Cerberus 验证两个参数具有相同数量的元素

2023-12-01

有没有办法拥有Cerberus验证两个字段是否具有相同数量的元素?

例如,该文档将验证:

{'a': [1, 2, 3], b: [4, 5, 6]}

这不会:

{'a': [1, 2, 3], 'b': [7, 8]}

到目前为止,我已经想出了这个模式:

{'a': {'required':False, 'type'= 'list', 'dependencies':'b'},
 'b': {'required':False, 'type'= 'list', 'dependencies':'a'}}

但没有规则可以测试两个字段的长度是否相等。


With a 自定义规则这非常简单:

>>> from cerberus import Validator

>>> class MyValidator(Validator):
        def _validate_match_length(self, other, field, value):
            if other not in self.document:
                return False
            if len(value) != len(self.document[other]):
                self._error(field, 
                            "Length doesn't match field %s's length." % other)

>>> schema = {'a': {'type': 'list', 'required': True},
              'b': {'type': 'list', 'required': True, 'match_length': 'a'}}
>>> validator = MyValidator(schema)
>>> document = {'a': [1, 2, 3], 'b': [4, 5, 6]}
>>> validator(document)
True
>>> document = {'a': [1, 2, 3], 'b': [7, 8]}
>>> validator(document)
False
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Cerberus 验证两个参数具有相同数量的元素 的相关文章

  • 如何从Python中的阿拉伯字符串中删除英文文本?

    我有一个带有英文文本和标点符号的阿拉伯字符串 我需要过滤阿拉伯文本 我尝试使用 sting 删除标点符号和英语单词 但是 我失去了阿拉伯语单词之间的空格 我哪里错了 import string exclude set string punc
  • 如何使用 Julia 查找矩阵中的连通分量

    假设我有以下矩阵 此处用 Julia 语言定义 mat 1 1 0 0 0 1 1 0 0 0 0 0 0 0 1 0 0 0 1 1 将一组值为 1 的相邻元素视为一个 分量 如何识别该矩阵有 2 个分量以及每个分量由哪些顶点组成 对于矩
  • 检查时间戳列是否在另一个数据帧的日期范围内

    我有一个数据框 df A 有两列 amin 和 amax 这是一组时间范围 我的目标是查找 df B 中的列是否位于 df A amin 和 amax 列中范围的任何行之间 df A amin amax amin amax 0 2016 0
  • 来自 Pandas DataFrame 的用户定义的 Json 格式

    我有一个 pandas dataFrame 打印 pandas DataFrame 后 结果如下所示 country branch no of employee total salary count DOB count email x a
  • Python int和float在64位系统中的内存消耗

    我正在 Python 3 4 的 64 位系统中尝试以下代码 以了解不同原始数据类型的内存消耗 import sys print sys getsizeof 45 prints 28 print sys getsizeof 45 2 pri
  • 安装 Ta-lib 会产生 gcc 错误

    当我尝试在我的 mac 上将 Ta lib 作为全局包安装时 出现 gcc 错误 我收到以下错误 gcc Wno unused result Wsign compare Wunreachable code DNDEBUG g fwrapv
  • 忽略覆盖率报告中的空文件

    覆盖率 py https github com nedbat coveragepy会包括 init py在其报告中并将其显示为 0 行 但覆盖率为 100 我想从覆盖率报告中排除所有空白文件 我不能只添加 init py to omit作为
  • 更改散景图中选项卡的样式

    我想知道是否有办法更改散景图上生成的选项卡的属性 诸如增加文本字体 更改制表符宽度等更改 以下是用于生成具有两个选项卡的绘图的简单代码 from bokeh models widgets import Panel Tabs from bok
  • 将函数应用于 3D numpy 数组

    我有一个来自 Image PIL Pillow 对象的 numpy 3D 数组 178 214 235 180 215 236 180 215 235 146 173 194 145 172 193 146 173 194 126 171
  • 使用 Pytest 捕获 SystemExit 消息

    我正在使用 pytest 编写测试 我遇到了一些函数抛出异常的情况SystemExit如果输入错误 终端上会显示一些错误消息 我想为以下情况编写测试SystemExit抛出并验证输出错误消息中是否有特定字符串 这是代码 def test v
  • matplotlib 中矩形面片之间存在不需要的空间

    以下代码绘制两个红色矩形 红色矩形应该彼此相邻 之间没有空间 在 python 图中 这是可以的 在导出的 pdf 中 矩形之间有一个细长但明显的空白 有什么方法可以解决这个问题吗 import matplotlib pyplot as p
  • Pygame 旋转射击

    我和几个朋友一直在编写一种有趣的新射击机制 为了让它发挥作用 我们需要朝玩家面对的方向射击 Sprite 正在使用 Pygame Transform Rotate 进行旋转 我们怎样才能找到一个角度 然后朝那个方向发射子弹呢 这是我们的精灵
  • ModuleNotFoundError:没有名为“googleapiclient”的模块

    如果这是一个愚蠢的问题 我深表歉意 我在 stackoverflow 上搜索过 但没有找到解决办法 我正在致力于从 Python 2 7 迁移到 Python 3 8 我收到一个程序的以下错误 请帮我 Traceback most rece
  • Pandas 对 HDFStore 中的大数据进行“分组”查询?

    我有大约 700 万行HDFStore有60多个柱子 数据超出了我的记忆能力 我希望根据 A 列的值将数据聚合到组中 pandas 的文档分割 聚合 组合 http pandas pydata org pandas docs stable
  • Python、Oracle DB、列中的 XML 数据,获取 cx_Oracle.Object

    我正在使用 python 从 Oracle DB 获取数据 所有行都有一个包含 XML 数据的列 当我使用 python 打印从 Oracle DB 获取的数据时 包含 XML 数据的列将打印为 0x7fffe373b960 处的 cx O
  • 使用 python pyad 访问对象 [] 时出现问题

    我在尝试使用 pyad 访问活动目录用户属性时遇到问题 这是我的代码 user pyad aduser ADUser from cn tuser print user get attribute lastLogonTimestamp 这些是
  • 计算列表中的子列表

    L 2 4 5 6 2 1 6 6 3 2 4 5 3 4 5 我想知道任意子序列出现了多少次 s 2 4 5 例如会返回2次 I tried L count s 但它不起作用 因为我认为它期望寻找类似的东西 random numbers
  • WTforms 表单未提交但不输出验证错误

    我正在尝试使用以下方式上传文件flask uploads工作和遇到一些障碍 我会告诉你我的flask查看函数 html 希望有人能指出我缺少的内容 基本上发生的情况是我提交了表格但失败了if request method POST and
  • Python tkinter:在组合框中使用“文本变量”似乎没用

    使用textvariable在 tkinter 中创建组合框时的属性似乎完全没用 有人可以解释一下目的是什么吗 我查看了 Tcl 文档 它说textvariable用于设置默认值 但看起来在 tkinter 中您只需使用 set方法来做到这
  • 关闭 IPython Notebook 中的自动保存

    我正在寻找一种方法来关闭 iPython 笔记本中的自动保存 我已经通过 Google Stack Overflow 搜索看到了有关如何打开自动保存的参考资料 但我想要相反的内容 关闭自动保存 如果这是可以永久设置的东西而不是在每个笔记本的

随机推荐

  • “e.target”调用了错误的目标?

    我正在开发的组件依赖于 img 里面的元素 span 元素 并且当 span 通过 JQuery 检测到 点击 事件 该跨度的 ID 应记录到控制台 但由于某种原因 img 的 ID 正在被记录 gt star span click e g
  • 如何从 ERA5 每小时 netCDF 数据计算日平均值?

    嗨亲爱的大家 我为重复这个问题表示歉意 我已从 Copernicus 网络平台下载并合并了 ERA5 每小时露点温度数据 d2m wb nc 现在 我想根据每小时 d2m wb nc 数据计算每日平均值 时间戳为 00 01 02 23 E
  • 将字符串分解为大写字符

    我正在制作一种方法来读取整个类代码并用它做一些事情 我想要做的是获取方法的名称 并用它创建一个字符串 像删除产品之类的东西 我将制作一个字符串 删除产品 如何在大写情况下拆分名称方法 如何使用每个单词的第一个字母作为大写字母来构建这个新字符
  • 无法绑定到 Openshift 上的端口

    我在 openshift 上的应用程序中运行嵌入式 activemq 消息服务器 根据this 你只能绑定15000 35530 我尝试执行以下操作 但它引发了严重错误 可能是什么问题 我正在使用弹簧 这是我的一部分applicationC
  • 使用 ggplot() 和 bsts() 包通过 MCMC 进行贝叶斯时间序列分析生成 BSTS 平均绝对百分比误差 (MAPE) 图

    Problem 我有一个名为 FID 的数据框 见下文 其中包含 年 和 月 两列以及 Sighting Frequency 鸟类计数 数据框包含3 years之间的观察值2015 2017 表示我有 36 个月的数据 我已经运行了使用 M
  • 从终结器中调用 GC.SuppressFinalize()

    我正在开发一个类 在该类中我必须处理托管和非托管资源 看起来像这样 显然 只有处理部分 class MyDisposingExample IDisposable public void Dispose Dispose true privat
  • 如何计算文件的熵?

    如何计算文件的熵 或者我们只说一堆字节 我有一个想法 但我不确定它在数学上是否正确 我的想法如下 创建一个包含 256 个整数 全为零 的数组 遍历文件及其每个字节 增加数组中相应的位置 最后 计算数组的 平均值 将计数器初始化为零 对于数
  • SortedSet<>.Contains() 如何实现自己的比较?

    我想检查具有给定值的对象是否存在于SortedSet lt gt 但我不明白自定义比较在这里是如何工作的 在List lt gt Exists 我可以只使用 lambda 但我不能在那里这样做 而且我没有得到整个界面的东西 而 msdn 说
  • R 中零值之间向量的元素之和

    我有一个带有零和正数的向量 我只想将这些数字相加between零点 一个简单的例子 x lt c 0 0 0 0 0 1 23 24 54 12 1 23 0 0 0 0 1 23 56 76 0 1 13 也就是说 我想对元素求和1 23
  • 如何让 Chrome 尊重我的字段名称而不是尝试自动完成

    我的主页上有两种不同的表单 一种用于登录 一种用于注册 从代码中可以看出 表单具有不同名称的输入 h3 Log In h3
  • 我可以使用 android.preference 包执行数据库特定操作吗?

    我需要一个数据库 可以在其中存储数据并在需要时获取数据 这可以通过 android preference 包实现吗 我不想使用 sqlite 数据库 regards 根据共享偏好 Android 开发者教程 第 13 部分 作者 Sai G
  • 使用 Electron-packager 时,我们可以在没有安装 Node 的 Mac 上启动 Node 命令吗?

    当我使用电子打包器打包电子应用程序时 该应用程序生成一个使用 node 命令的子进程 现在 如果我尝试在未安装节点的系统中启动我的应用程序 该应用程序可以运行吗 我一直在尝试实现这一目标并面临各种问题 电子社区建议我使用 fork 方法 s
  • avcodec YUV 转 RGB

    我正在尝试使用 libswscale 将 YUV 帧转换为 RGB 这是我的代码 AVFrame RGBFrame SwsContext ConversionContext ConversionContext sws getCachedCo
  • 从c文件中提取头名称的正则表达式

    如何从包含这样的 c 文件中提取标头 include
  • Grunt、NPM 和 Bower 之间的区别(package.json 与 Bower.json)

    当我想添加一个包 并将依赖项签入 git 时 它属于哪里 进入package json或进入bower json 据我收集的信息 跑步bower install将获取包并将其放入 vendor目录 跑步npm install它会获取它并将其
  • 二叉树递归函数

    我需要打印出一个如下所示的二叉树 x x x x x x x x x x x x x x x xxxxxxxxxxxxxxxx 使用递归打印该行的左侧和右侧 第一行除外 因此该函数将调用带有左起点和右终点参数的显示函数 然后它会调用自己两次
  • Docker:如何从给定容器访问另一个容器中的文件?

    基本上我有一个主目录和图书目录 一般文件结构 还有更多 但这些是重要的部分 因此 当我从 main 向 booksServer 发出请求时 它不起作用 因为节点模块丢失 这是因为节点模块位于 docker 容器内的特定路径 usr src
  • 网络个人资料有什么用?

    我偶然发现了这个项目ASP NET Web 配置文件生成器 为什么我需要代理类来访问配置文件 因为 ASP NET 仅支持带有 网站 选项的开箱即用的配置文件 如果您使用的是 Web 应用程序项目 WAP 那么您必须推出自己的项目 问题源于
  • JAX-RS 未能注入 @EJB 或 @Inject

    我正在尝试测试最小的 JAX RS EJB CDI 注入机制 但目前由于 GlassFish 由于某种原因无法注入而遇到了障碍 使用 Inject 将抛出 NPE 因为 GlassFish 无法注入 POJO 我的 beans xml 仅包
  • 使用 Cerberus 验证两个参数具有相同数量的元素

    有没有办法拥有Cerberus验证两个字段是否具有相同数量的元素 例如 该文档将验证 a 1 2 3 b 4 5 6 这不会 a 1 2 3 b 7 8 到目前为止 我已经想出了这个模式 a required False type list