Python在捕捉异常时,如何得到行号?

2024-04-26 21:10:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道有另一个线索,但它没有解决我的问题,请阅读我的问题!在

基本上,我正在解析一个YAML文件,以确保它具有我想要的所有正确的键和值。如果YAML文件有一个不正确的值或键,那么我想打印一条消息,说明不正确的值或键在哪里。在

示例:
假设这个YAML文件:

Groceries:
Apples: Granny
Milk: Skim
Bread: Wheat

假设我期望“整体”作为“牛奶”的价值。如果那一行是第3行,我如何打印一条消息,说“error:invalid value blah on line line 3”??在

非常感谢!在


Tags: 文件消息yaml示例line整体牛奶groceries
2条回答

我对这个问题也有类似的要求。我找不到python解决方案,但找到了kwalify-http://www.kuwata-lab.com/kwalify。您可以将其用作命令行工具。它允许您将键和允许的值指定为模式。然后按如下方式验证YAML文件:

夸利费-f架构.yaml文档.yaml在

从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)

相关问题 更多 >