我知道还有另一个帖子,但它没有解决我的问题,请阅读我的问题!
基本上,我正在解析YAML文件以确保它具有我想要的所有正确的键和值。如果YAML文件具有需要的错误值或密钥,那么我想打印一条消息,指出错误值或键的位置。
例:
让我们说这个YAML文件:
杂货:
苹果:奶奶
牛奶:脱脂 面包:小麦
让我说我期待'整体'作为'牛奶'的价值。如果该行是第3行,如何打印一条消息“错误:在LINE 3上无效值等等?”
非常感谢!
答案 0 :(得分:5)
来自PyYaml文档
>>> try:
... yaml.load("unbalanced blackets: ][")
... except yaml.YAMLError, exc:
... if hasattr(exc, 'problem_mark'):
... mark = exc.problem_mark
... print "Error position: (%s:%s)" % (mark.line+1, mark.column+1)
Error position: (1:22)
答案 1 :(得分:0)
我对这个问题有类似的要求。我无法找到python解决方案,但找到了kwalify - http://www.kuwata-lab.com/kwalify。您可以将其用作命令行工具。它允许您将键和允许值指定为架构。然后,您可以按如下方式验证YAML文件:
kwalify -f schema.yaml document.yaml