[python] PyYAML로 YAML 파일 내의 데이터 유형 검사하기

YAML은 사람이 읽고 작성하기 쉬운 데이터 직렬화 형식입니다. 이 포맷은 데이터를 표현하는데 사용되며, YAML 파일은 일반적으로 설정 파일이나 데이터 저장소로 사용됩니다.

PyYAML은 Python에서 YAML 파일을 읽고 쓰기 위한 라이브러리입니다. 이 라이브러리는 YAML 파일을 파이썬 객체로 로드하고, 파이썬 객체를 YAML 형식으로 저장할 수 있습니다.

하지만 때로는 로드된 데이터의 유형을 확인하고 검사해야 하는 경우가 있습니다. 이를 위해 PyYAML은 유효성 검사 스키마를 사용할 수 있습니다.

유효성 검사 스키마 정의하기

PyYAML을 사용하여 YAML 파일을 로드 할 때, 유효성 검사를 위한 스키마를 정의할 수 있습니다. 이를 통해 로드된 데이터의 유효성을 검사할 수 있습니다.

아래는 간단한 YAML 파일과 유효성 검사 스키마의 예입니다.

# example.yaml
name: John Doe
age: 30
email: john.doe@example.com
# example.py
import yaml
from yaml import SafeLoader

schema = {'name': str, 'age': int, 'email': str}

with open('example.yaml', 'r') as file:
    data = yaml.load(file, Loader=SafeLoader)

def validate_data(data, schema):
    for key, value in schema.items():
        if key not in data or not isinstance(data[key], value):
            return False
    return True

if validate_data(data, schema):
    print("Data is valid!")
else:
    print("Data is invalid!")

schema 변수에는 유효성 검사를 위한 키-값 쌍이 포함되어 있으며, validate_data 함수는 데이터와 스키마를 전달받아 유효성을 검사합니다. 데이터가 스키마와 일치하지 않는 경우 False를 반환하고, 일치하는 경우 True를 반환합니다.

결과 확인하기

위의 예제 코드를 실행하면, PyYAML을 사용하여 YAML 파일을 로드하고 데이터를 검사할 수 있습니다.

만약 YAML 파일이 유효한 경우, “Data is valid!”라는 메시지가 출력될 것입니다. 그렇지 않은 경우 “Data is invalid!”라는 메시지가 출력됩니다.

이를 통해 PyYAML을 사용하여 YAML 파일 내의 데이터 유형을 검사할 수 있습니다.

참고 자료