gpt4 book ai didi

python - 在 python 中验证 yaml 文档

转载 作者:IT老高 更新时间:2023-10-28 20:32:04 26 4
gpt4 key购买 nike

XML 的一个好处是能够根据 XSD 验证文档。 YAML 没有此功能,那么如何验证我打开的 YAML 文档是否符合我的应用程序预期的格式?

最佳答案

鉴于 JSON 和 YAML 非常相似,您可以使用 JSON-Schema验证 YAML 的一个相当大的子集。这是一个代码片段(您需要安装 PyYAMLjsonschema):

from jsonschema import validate
import yaml

schema = """
type: object
properties:
testing:
type: array
items:
enum:
- this
- is
- a
- test
"""

good_instance = """
testing: ['this', 'is', 'a', 'test']
"""

validate(yaml.load(good_instance), yaml.load(schema)) # passes

# Now let's try a bad instance...

bad_instance = """
testing: ['this', 'is', 'a', 'bad', 'test']
"""

validate(yaml.load(bad_instance), yaml.load(schema))

# Fails with:
# ValidationError: 'bad' is not one of ['this', 'is', 'a', 'test']
#
# Failed validating 'enum' in schema['properties']['testing']['items']:
# {'enum': ['this', 'is', 'a', 'test']}
#
# On instance['testing'][3]:
# 'bad'

其中一个问题是,如果您的架构跨越多个文件并且您使用 "$ref" 来引用其他文件,那么我认为其他文件将需要是 JSON。但可能有办法解决这个问题。在我自己的项目中,我正在使用 JSON 文件指定架构,而实例是 YAML。

关于python - 在 python 中验证 yaml 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3262569/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com