跳至内容

JSON 模式也可以用于验证 YAML。这假设您可能希望将 jsonschema 和 yaml 结合使用。

实际上,StrictYAML 的灵感来自于试图将 pyyaml 与 pykwalify 一起使用时的挫败感。

丢失行号

因为首先使用 pyyaml 解析,然后将结果传递给 pykwalify 会丢失行号,验证错误会丢失验证错误发生的行号。

这使得追踪错误的位置变得很麻烦。如果模式有点重复,则追踪错误的确切位置可能会很困难。

StrictYAML 中更简单的错误

StrictYAML 重视模式验证错误的友好性。理想情况下,每个模式验证错误都应该非常明显,并且只显示必要的信息。

StrictYAML 模式更灵活

因为模式是用 python 编写的,并且 strictyaml 允许重新验证,所以 strictyaml 模式更加灵活

示例

from strictyaml import load, Seq, Enum
import pycountry    # updated list of country codes


load(
    strictyaml_string,
    Map(
        {
            "countries": Seq(Enum([country.alpha_2 for country in pycountry.countries]))
        }
    )
)