我正在使用python库cerberus(http://docs.python-cerberus.org/en/stable/),并且想检查JSON字段是数字(整数)还是空字符串。
我尝试使用以下条件:
address of slice 0x170460
address of slice 0x183e78
0x170460
Array 0th: 0x170460
但是当该字段为空字符串时,例如:(“”),则会出现以下错误。
slice
有没有一种使用基本验证规则的方式,以便它还能在数字字段中检测到空字符串?我知道可以通过使用扩展验证功能来完成,但是我现在想避免该解决方案。
答案 0 :(得分:1)
尝试这样的事情:
{"anyof":[
{"type":"string","allowed":[""]},
{"anyof_type":["float","integer"]}
]},
答案 1 :(得分:1)
我建议不要使模式过于复杂。 1)可以为type
规则声明多种类型。 2)empty
规则仅适用于较大的值,因此它将忽略任何给定的整数。因此,这是为您的约束设置的最简单的规则:
{'type': ('integer', 'string'),
'empty': True}
请注意,这不会强制将值强制为空字符串,但可以将其强制为vulgo:也将传递非空字符串。您可能想使用带有max_lengh
的{{1}}规则作为约束。