问题标签 [cerberus]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
202 浏览

python - Python:如果 len(value) == 1,则 Cerberus 值强制

使用该cerberus库进行验证,我想知道自定义规则如何检查输入是否是只有一个元素的列表。如果是这种情况,则应将值更改为单个值(值强制)。

这是我的尝试,它不起作用。

输出是{'amount': [10]}
但是,它应该阅读{'amount': 10}

0 投票
0 回答
138 浏览

python - 允许给定模式之一

我正在使用 Cerberus 来验证一些看起来像这样的 YAML 文件:

fleet.yml

一般结构是有一些文件范围的值,例如fleet_city,然后是一个名为vehicles. 后者是以车辆名称为键的字典。每种车辆类型都有自己的模式,尽管它们都是字典。我想出了这个模式来正式化这个:

schema.yml

我可以测试:

哪个正确返回True。然而,在输入中,每辆车都应该有一种类型(一个car街区或一个boat街区,而不是两者)。此规则未反映在上述架构中。我试着像这样添加它:

schema2.yml

据我所知,我遵循了文档中给出的语法,schema2.yml原因是:

这真的没有帮助。

一种解决方法是使用excludesfor carin boat,反之亦然,但如果我们不仅有 2 种车辆类型,而且有很多车辆类型,那么这种方法就会失败。

我的问题是什么,我schema2.yml该如何解决?

0 投票
2 回答
837 浏览

python - Python:cerberus check_with 函数

我想验证 a dict,其中的值符合以下规则:

  • 值必须是单个floatList(float)
  • 如果是 single float,则值必须为 1
  • 如果是 a List(float),每个浮点数必须是正数

这是我的代码和一些测试断言,它们工作正常:

现在,我必须再实现一个条件:

  • 如果是 a List(float),则sumoffloat必须等于 1

因此,我编写了文档( https://docs.python-cerberus.org/en/stable/validation-rules.htmlcheck_with中描述的函数。

调整后的架构和测试文档如下所示:

现在,只要值是 a List(float),只有第一个元素list会被注入我的函数,导致 a TypeError: 'float' object is not iterable
验证时document4field将是int=0value=0.5。所以错误信息是有道理的。

我想知道,为什么整个列表没有传递给我的函数?我在这里想念什么?

0 投票
1 回答
714 浏览

python-3.x - 使用 cerberus 正则表达式验证字符串以模式结尾

cerberus库表示它允许进行正则表达式验证,但这似乎不适用于各种情况,而且文档很少在尝试验证字符串是否以“.csv”结尾的情况下,验证总是失败,即使在搜索文件名本身的部分时也是如此。我认为cerberus在后端对传入的正则表达式做了一些事情。

0 投票
3 回答
866 浏览

python-3.x - 是否可以在 cerberus、Python 中设置条件验证?

我使用 Python 包cerberus来验证我的有效负载这是我的问题:

仅当来自另一个模式的某些字段具有精确值时,我才需要设置一个字段。就像是:

所以我的架构应该是这样的:

有人知道方法,如何实现吗?谢谢

0 投票
1 回答
56 浏览

python - 如果缺少密钥,如何使用 ceberus 发出警告?

Cerberus 允许必填字段,但我希望有一个“首选”字段类,以便在它们丢失时记录警告消息。我有一些看起来不太好的想法如下:

  1. 我可以使用自定义规则扩展验证器,但是这些是用fieldvalue参数调用的,这让我怀疑这个函数会在缺少的字段上调用。__validate_required_fields在文档上调用以生成丢失的文件会更理想,但我不确定如何将其挂钩。

  2. Cerberus 提供了一个check_with选项,但我不确定是否会在缺少的字段上调用它。

  3. 我可以尝试根据需要标记这些并在错误处理程序中进行跟踪。这并不理想,因为如果缺少“首选”字段,验证不会失败。

0 投票
1 回答
116 浏览

python - 排除 Cerberus 1.3.2 中的问题

我是 Cerberus 的新手,最近将 Cerberus 版本从 1.1 升级到 1.3.2。但得到验证错误。请找到验证模式。

对于 Cerberus 版本 1.3.2,出现错误

对于 Cerberus 版本 1.3.2,出现错误

对于 Cerberus 1.1 版,验证工作正常。

在此处输入图像描述

希望能得到一些帮助。

0 投票
0 回答
50 浏览

python - 使用 cerberus coercers 加密/解密数据

我打算使用 python eve & cerberus 将一些文档保存到 mongodb 数据库中。其中一些文档将包含一些我确实想加密存储的敏感数据(伪密码)。

我认为 cerberus custom coercers 是解决此问题的完美方法。但是,我不确定如何使 cerberus 持久加密数据,并将其带回解密。

我一直在寻找文档,但我不知道是否可以指定我何时想要“加密”或“解密”

我想要类似的东西:

附加数据

重要的是,调用此强制器不会添加额外的规范化,例如添加默认值。我只想加密字段,但让文档的其余部分保持原样

有可能做这样的事情吗?我怎么能用这个参数调用这种强制器?

0 投票
1 回答
70 浏览

python - Cerberus 两把钥匙之一

我有一组用于验证我的输入路由的模式:

但我需要定义一个email_address或者mobile_number是必需的,但不是两者都需要。如何只需要这两个键中的一个?

0 投票
1 回答
266 浏览

python - 使用 Cerberus 验证具有严格模式的任意 dict 键

我正在尝试验证 JSON,其模式指定具有任意字符串键的 dicts 列表,其对应的值是具有严格模式的 dicts(即,内部 dict 的键严格是一些字符串,这里是 'a' )。从 Cerberus 文档中,我认为我想要的是“keysrules”规则。文档中的示例似乎只显示了如何使用“keysrules”来验证任意键,而不是它们的值。我写了下面的代码作为例子;我能做的最好的就是假设“keysrules”将支持“模式”参数来定义这些值的模式。

这个例子确实验证了,我希望它不在'shouldNotValidate'上验证,因为那个键应该是'a'。'keysrules' 所暗示的灵活性(即,由'keysrules' 管理的键除了{'type': 'string'} 之外没有其他约束)递归地向下传播到它下面的所有模式?还是我犯了一些不同的错误?我怎样才能达到我想要的结果?