【问题标题】:PyYAML find line of incorrect YAML syntax errorPyYAML 找到不正确的 YAML 语法错误行
【发布时间】:2018-05-01 19:13:04
【问题描述】:

我正在读取 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)

【问题讨论】:

    标签: python yaml pyyaml


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-05-07
      • 1970-01-01
      • 2014-03-06
      • 1970-01-01
      • 2020-02-21
      • 2021-04-15
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多