问题标签 [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 强制
我得到以下代码的意外行为:
我希望没有错误,因为强制应该处理类型。但我越来越
这是一个错误吗?我是否误解了强制的工作原理?
python - 如果字段存在,则对规则进行两种不同的验证
我需要解析很多 yml 文件。我有类似示例的内容,在某些情况下存在一个值,因此我需要更改另一个规则的正则表达式。我找不到正确验证它的方法
yaml1:
yaml2:
架构:
python - 尝试在 cerberus 中进行递归模式验证时出现 TypeError
我正在尝试使用 cerberus 构建递归模式,但似乎错过了它应该如何工作的重点。有人可以帮我吗?
在 repo 中的文档和旧问题中,解释了处理递归的方法是使用模式注册表来创建自引用模式,否则我们会达到递归深度限制。
但是,尝试一些非常基本的东西会导致 TypeError。
请在文档中获得模式递归示例会很棒!一旦我了解发生了什么,我很乐意帮助提交一份。
运行上述导致以下未处理的异常:
非常感谢您的帮助!
python - Cerberus - 仅当满足依赖性时才需要字段
考虑以下架构
我希望仅当字段的值为or时才units
需要该字段。value_type
float
integer
这是我想要实现的行为
上述 Schema 仅返回前 3 种情况的预期结果。
如果我将units
(通过省略"required": True
)的定义更改为
然后验证
返回True
这不是我想要的。
我查看了文档oneof
中的规则,但找不到仅将其应用于属性的方法。required
我希望 required 的值True
仅在满足依赖项时才存在。
我应该如何修改我的架构来实现这一点?
python-3.x - 将 UUID 类型添加到 Cerberus 会导致 BAD_TYPE 错误
我正在尝试将自定义数据类型添加到Cerberus。UUID 类按预期工作(它是一个标准库类),但我无法使用 Cerberus 验证 UUID 类型。
其次,我无法在一个__init__
函数中注册多种类型,但这可能应该是它自己的问题。
这是我应该注册给定类型的自定义验证器。
这是我对此代码的单元测试。
如果我们只是给 UUID 类一个有效的 UUID,它会成功,但如果我们尝试通过 Cerberus 验证它,我们会收到BAD_TYPE
验证错误。
编辑 1
简化的示例代码
同样的失败
python - 地狱犬:禁止现场存在
我想使用 Cerberus 来验证对象中不存在字段。
我想使用类似的东西:
基本上,我永远不会接受forbidden_field
. 现在我接受更改我的验证器:
这基本上可以解决仅使用“允许”字段设置架构的技巧,但我真的不喜欢它的功能,因为这禁止我接受其他字段,而不仅仅是forbidden_field
.
我也看到了allowed
和forbidden
验证规则,但是它们检查的是字段的值,而不是字段的存在。
那么,我怎么能告诉我的验证器只禁止 Cerberus 的特定字段存在呢?
python - 如何检查 Cerberus 中的参照完整性?
考虑以下 Cerberus 模式:
1) 如何验证 ceo-employee-id 是否与员工列表中的 id 值之一匹配?(参照完整性)
2) 如何验证员工列表中的每个 ID 都是唯一的(即没有重复的员工 ID)?
我意识到我可以在验证和解析下面@rafael 建议的配置后在运行时执行此操作。我想知道我是否可以使用 Cerberus 验证功能来做到这一点。
cerberus - 嵌套列表级别的 Python Cerberus 依赖项
是否Cerberus 1.2
支持列表上的依赖项验证?
例如,架构如下所示:
我想检查的规则是只有在为真my_field
时才应该存在。simple_field
我将如何翻译Cerberus
?
python - Python Cerberus:使用“anyof_schema”规则验证不同模式的问题
我正在尝试使用 Cerberus 使用本文anyof_schema
中提出的规则来验证包含字符串或字典的列表:
但验证失败,输出:
似乎该anyof_schema
规则仅在提供的集合中的所有模式都描述相同的数据类型(例如字典)时才有效。
为什么anyof_schema
规则在我的情况下失败,我该如何解决这个问题?
我正在使用 Python 3.5.3 和 Cerberus 1.3.1
json - 使用 cerberus 深度嵌套的 json 验证器
我有一个深度嵌套的 json,我正在尝试用 cerberus 进行验证。所以,我有以下结构:(注意:假设更深的巢)
我为第一级创建了架构,但我不知道如何深入 json。我无法手动编写深度模式,因为我不知道 json 会下降多少级。据我了解,cerberus 可以处理嵌套的 json,但我找不到针对这种确切情况的任何代码参考。知道如何实现吗?