2017-11-17 15 views
1

私はYAMLファイルを読み込んでいます。例外を引き起こす構文ミスがある場合は、例外をロガーに送信します。私のロギングメッセージで、YAMLファイルのどの行に構文エラーが含まれているかを特定する方法はありますか?PyYAML不正な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) 

答えて

1

YAMLError()を探し、PyYAMLDocumentationを見てください:

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) 
関連する問題