【问题标题】:python schema to have at least one keypython模式至少有一个键
【发布时间】:2018-01-02 22:08:35
【问题描述】:

我正在使用schema 库。

如何创建模式来验证字典中是否包含任何键和对应的值?

mydict_schema = Schema({
    Optional('name'): str,
    Optional('name_id'): int,
})

目前所有的键都是Optional,但我希望至少有一个。

【问题讨论】:

  • @holdenweb schema 是第三方库。
  • 谢谢 - 编辑是最有用的

标签: python validation dictionary schema associative-array


【解决方案1】:

上下文

  • python2
  • 使用架构库进行验证

用例

  • DevSyedK 希望创建一个架构验证约束,该约束要求字典至少具有一组可能键中的一个键
  • DevSyedK 当前有一个 ZeroOrMore 约束,但 DevSyedK 希望它是一个 OneOrMore 约束

解决方案

  • 建立两个列表,一个列表包含所有可能的键,另一个列表包含要验证的数据中包含的实际键
  • 创建一个模式约束,当且仅当两个列表的交集不为空时返回True

演示代码

  • 注意:这不是问题的完整解决方案,只是概念验证。

    lstkeys_possible = ['alpha','bravo','charlie'] lstkeys_actual = [] ## 不会验证 lstkeys_actual = ['zulu'] ## 不会验证 lstkeys_actual = ['alpha'] ## 将验证 Schema( lambda vinput: bool(set(vinput[0]) & set(vinput[1])) ).validate( [lstkeys_possible,lstkeys_actual] )

另见

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2016-08-20
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 2019-02-09
    • 2016-11-01
    • 1970-01-01
    相关资源
    最近更新 更多