问题标签 [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 回答
773 浏览

python - cerberus:验证可选字段至少出现一次

我正在使用 cerberus 来验证数据。我的一个字段是可选的 - 它不需要每个项目都存在。但是,必须在整个数据数组中至少填充一次键。

例如,假设我想验证密钥是否'c'出现在我的数据列表中的至少一个字典中:

这在 cerberus 之外似乎是可行的,但如果可能的话,我想将该方法保留在我的验证器中。

0 投票
1 回答
818 浏览

python - Cerberus:将“必填”字段与自定义验证器一起使用

我在 Cerberus 中有需要自定义验证器的验证规则。访问 中的字段时self.document,我还必须验证这些字段是否存在,即使使用该"required"标志也是如此。我正在寻找一种方法让"required"旗帜为我处理这个问题。

例如,假设我有一个以data数组a和命名的字典,b并且规定ab都是必需的,而len(a) == len(b).

如果a并且b存在,这可以正常工作:

但是,如果b缺少,它会返回一个TypeErrorfrom len()

我怎样才能validate返回False(因为b不存在)?我想要的输出如下:

0 投票
2 回答
1003 浏览

python - 元组的 cerberus 模式验证器

我有一个变量声明如下

我想写一个验证器如下

在 Cerberus 文档中,它没有为tuples.

如何做到这一点?

0 投票
1 回答
749 浏览

python - 如何在 YAML 中为 python cerberus 验证器库定义强制函数

我正在尝试在 YAML 中为 python cerberus 库定义我的验证器模式,因为它更具人类可读性。我遇到了一个问题,如果我尝试在 YAML 中定义强制函数,我会得到一个 SchemaError。从Normalizing string to date in cerbrus的示例开始,我将其修改为使用 YAML 模式。

我得到错误:

SchemaError: {'start_date': [{'coerce': ['none or more than one rule validate', {'oneof definition 0': ['must be of callable type'], 'oneof definition 1': ['must属于列表类型'], 'oneof definition 2': ['unallowed value to_Date']}]}]}

定义基于 YAML 的模式支持的强制函数还是我需要切换回使用 JSON?

0 投票
2 回答
910 浏览

python - 使用 Cerberus 检测数字字段中的空字符串

我正在使用 python 库 cerberus ( http://docs.python-cerberus.org/en/stable/ ),我想检查 JSON 字段是数字(整数)还是空字符串。

我尝试使用条件:

但是当字段为空字符串时,例如:(“”),我收到以下错误。

有没有一种使用基本验证规则的方法,因此它还能检测数字字段中的空字符串?我知道可以通过使用扩展验证函数来完成,但我暂时想避免使用该解决方案。

0 投票
1 回答
529 浏览

python - ceberus:如何忽略基于 yaml 注释的字段?

概述

我有很多 .yaml 文件和验证它们的模式。有时,一个“不正确”的值实际上是正确的。

我需要一些方法来忽略某些字段。不应对这些字段执行任何验证。

例子

我怎样才能做到这一点?

0 投票
1 回答
940 浏览

validation - 如何验证 cerberus 架构

我的 Web 应用程序Cerberus对每个请求使用架构验证(当前版本是 1.2)。为此,我在 YAML 中编写模式,在应用程序启动时加载它并进行验证,并使用大量反向引用来优化我的工作,如下面的模式所示。

在测试/运行时捕获模式错误是非常不幸的。如何在应用程序启动时验证模式本身而不为每个模式编写虚拟值?

0 投票
0 回答
540 浏览

ssh.net - SSH.NET 不捕获异常消息

我们正在使用Cerberus FTP 服务器。对于客户端,我使用SSH.NET库连接到服务器并上传文件。大多数情况下,我都能毫无问题地连接文件并将文件上传到 FTP 服务器。

但是,当 FTP 服务器上不存在目标路径时,SSH.NET 库会按预期抛出异常。但是 Exception 的 Message 属性是空的。

不确定这个 SSH.NET 库问题或 FTP 服务器是否需要将错误传播回客户端?

更新 1

堆栈跟踪

" 在 Renci.SshNet.Sftp.SftpSession.RequestOpen(字符串路径,标志标志,布尔 nullOnError)\r\n 在 Renci.SshNet.SftpClient.InternalUploadFile(流输入,字符串路径,标志标志,SftpUploadAsyncResult asyncResult,操作1 uploadCallback)\r\n at Renci.SshNet.SftpClient.UploadFile(Stream input, String path, Action1 uploadCallback) \r\n 在 XXXXXX

0 投票
0 回答
176 浏览

python - 在 cerberus 中验证子表

考虑这个简化的场景。主从表:

添加设备时,用户显然不知道id,而是输入num。所以我尝试了这个验证模式:

我想重命名该字段并将其强制为正确的值,但自定义强制器不会被执行。我确信在强制之前进行重命名是有理由的,但我没有看到它。这样,您实际上不能在同一字段上同时拥有renamecoerce规则。

好的,所以我尝试在重命名的字段上设置强制器,标记它,readonly因为用户不能直接设置它。

我先进行验证,然后进行规范化。

由于readonly规则,这失败了。同样,我想知道在规范化期间检查的基本原理是什么readonly,因为这是一个验证,而不是规范化规则。

我一直在撞墙。在这种情况下,编写验证模式的正确方法是什么?

0 投票
1 回答
540 浏览

python - 取决于其他字段值的条件要求

Cerberus已经多次讨论了依赖于其他字段值的条件要求。的使用dependencies不满足需求,因为字段可以unknown在满足条件时使用。建议使用 of oneof,但是当满足多个条件和依赖项时,它可能很难工作。现在通用的解决方案是什么?