问题标签 [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.
python - cerberus:验证可选字段至少出现一次
我正在使用 cerberus 来验证数据。我的一个字段是可选的 - 它不需要每个项目都存在。但是,必须在整个数据数组中至少填充一次键。
例如,假设我想验证密钥是否'c'
出现在我的数据列表中的至少一个字典中:
这在 cerberus 之外似乎是可行的,但如果可能的话,我想将该方法保留在我的验证器中。
python - Cerberus:将“必填”字段与自定义验证器一起使用
我在 Cerberus 中有需要自定义验证器的验证规则。访问 中的字段时self.document
,我还必须验证这些字段是否存在,即使使用该"required"
标志也是如此。我正在寻找一种方法让"required"
旗帜为我处理这个问题。
例如,假设我有一个以data
数组a
和命名的字典,b
并且规定a
和b
都是必需的,而len(a) == len(b)
.
如果a
并且b
存在,这可以正常工作:
但是,如果b
缺少,它会返回一个TypeError
from len()
。
我怎样才能validate
返回False
(因为b
不存在)?我想要的输出如下:
python - 元组的 cerberus 模式验证器
我有一个变量声明如下
我想写一个验证器如下
在 Cerberus 文档中,它没有为tuples
.
如何做到这一点?
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?
python - 使用 Cerberus 检测数字字段中的空字符串
我正在使用 python 库 cerberus ( http://docs.python-cerberus.org/en/stable/ ),我想检查 JSON 字段是数字(整数)还是空字符串。
我尝试使用条件:
但是当字段为空字符串时,例如:(“”),我收到以下错误。
有没有一种使用基本验证规则的方法,因此它还能检测数字字段中的空字符串?我知道可以通过使用扩展验证函数来完成,但我暂时想避免使用该解决方案。
python - ceberus:如何忽略基于 yaml 注释的字段?
概述
我有很多 .yaml 文件和验证它们的模式。有时,一个“不正确”的值实际上是正确的。
我需要一些方法来忽略某些字段。不应对这些字段执行任何验证。
例子
我怎样才能做到这一点?
validation - 如何验证 cerberus 架构
我的 Web 应用程序Cerberus
对每个请求使用架构验证(当前版本是 1.2)。为此,我在 YAML 中编写模式,在应用程序启动时加载它并进行验证,并使用大量反向引用来优化我的工作,如下面的模式所示。
在测试/运行时捕获模式错误是非常不幸的。如何在应用程序启动时验证模式本身而不为每个模式编写虚拟值?
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, Action
1 uploadCallback) \r\n 在 XXXXXX
python - 在 cerberus 中验证子表
考虑这个简化的场景。主从表:
添加设备时,用户显然不知道id
,而是输入num
。所以我尝试了这个验证模式:
我想重命名该字段并将其强制为正确的值,但自定义强制器不会被执行。我确信在强制之前进行重命名是有理由的,但我没有看到它。这样,您实际上不能在同一字段上同时拥有rename
和coerce
规则。
好的,所以我尝试在重命名的字段上设置强制器,标记它,readonly
因为用户不能直接设置它。
我先进行验证,然后进行规范化。
由于readonly
规则,这失败了。同样,我想知道在规范化期间检查的基本原理是什么readonly
,因为这是一个验证,而不是规范化规则。
我一直在撞墙。在这种情况下,编写验证模式的正确方法是什么?
python - 取决于其他字段值的条件要求
Cerberus
已经多次讨论了依赖于其他字段值的条件要求。的使用dependencies
不满足需求,因为字段可以unknown
在满足条件时使用。建议使用 of oneof
,但是当满足多个条件和依赖项时,它可能很难工作。现在通用的解决方案是什么?