[python] PyYAML로 YAML 데이터 검증하기

YAML은 인간이 쉽게 읽고 작성할 수 있는 데이터 직렬화 형식입니다. PyYAML은 Python에서 YAML 데이터를 처리하기 위한 라이브러리로, YAML 파일을 파싱하고 생성하는 기능을 제공합니다. 이번 포스트에서는 PyYAML을 사용하여 YAML 데이터를 검증하는 방법에 대해 알아보겠습니다.

1. PyYAML 설치하기

먼저, PyYAML을 설치해야 합니다. 다음 명령어를 사용하여 PyYAML을 설치해주세요.

pip install pyyaml

2. YAML 파일 읽기

YAML 데이터를 검증하기 위해서는 먼저 YAML 파일을 읽어와야 합니다. 다음 코드를 사용하여 YAML 파일을 읽어올 수 있습니다.

import yaml

def read_yaml_file(file_path):
    with open(file_path, 'r') as file:
        data = yaml.safe_load(file)
    return data

yaml_data = read_yaml_file('example.yaml')
print(yaml_data)

위 코드에서 read_yaml_file 함수는 주어진 파일 경로에서 YAML 파일을 읽고 파싱한 결과를 반환합니다. 이렇게 읽어온 YAML 데이터를 yaml_data 변수에 저장하고 출력합니다.

3. YAML 데이터 검증

YAML 파일을 읽어왔다면, 이제 데이터의 유효성을 검증할 수 있습니다. PyYAML은 스키마를 정의하고 데이터를 스키마에 맞는지 확인하는 기능을 제공합니다.

from cerberus import Validator

def validate_yaml_data(yaml_data, schema):
    v = Validator(schema)
    is_valid = v.validate(yaml_data)
    
    if is_valid:
        print("Valid YAML data")
    else:
        print("Invalid YAML data")
        print(v.errors)

# 스키마 정의
schema = {
    'title': {'type': 'string', 'required': True},
    'description': {'type': 'string', 'required': True},
    'items': {'type': 'list', 'required': True, 'schema': {'type': 'string'}}
}

# YAML 데이터 검증
validate_yaml_data(yaml_data, schema)

위 코드에서 validate_yaml_data 함수는 주어진 YAML 데이터와 스키마를 사용하여 검증을 수행합니다. 스키마는 필수적으로 정의해야 할 필드와 해당 필드의 유형을 지정합니다. 검증 결과에 따라 유효한 YAML 데이터인지, 혹은 어떤 오류가 있는지를 출력합니다.

4. 결론

PyYAML을 사용하여 YAML 데이터를 검증하는 방법에 대해 알아보았습니다. YAML 파일을 읽어와서 파싱한 후에 데이터의 유효성을 검증할 수 있으며, 이를통해 잘못된 데이터를 미리 방지할 수 있습니다. PyYAML의 강력한 기능을 활용하여 안정적인 애플리케이션을 개발하는 데 도움이 되기를 바랍니다.

참고 자료