PyYAML查找错误YAML语法的行

2024-04-26 22:47:30 发布

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

我在读YAML文件。如果有语法错误导致异常,我会将异常发送到记录器。有什么方法可以在日志消息中标识YAML文件的哪一行包含语法错误?在

try:
    with open(input_path, "r") as yaml_file:
        yaml_dict = yaml.load(yaml_file)
except FileNotFoundError:
    logger.error("YAML file {} does not exist".format(input_path), exc_info=True)
    sys.exit(1)
except:
    logger.critical("Error in reading or parsing YAML file {}".format(input_path), exc_info=True)
    sys.exit(1)

Tags: 文件pathinfotrueformatyamlinputsys
1条回答
网友
1楼 · 发布于 2024-04-26 22:47:30

请看一下PyYAMLDocumentation,查找YAMLError()

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)

相关问题 更多 >