[python] PyYAML을 이용하여 YAML 파일의 데이터를 필터링하고 검증하기

YAML은 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식입니다. PyYAML은 Python에서 YAML 데이터를 처리하기 위한 라이브러리입니다. 이 튜토리얼에서는 PyYAML을 사용하여 YAML 파일의 데이터를 필터링하고 검증하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치하기

먼저 PyYAML 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다.

pip install PyYAML

YAML 파일 읽기

먼저 YAML 파일을 읽어야 합니다. 다음 예제 코드를 사용하여 YAML 파일을 읽어옵니다.

import yaml

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

위의 코드에서 example.yaml 파일을 열고, yaml.load() 함수를 사용하여 YAML 데이터를 파싱합니다. Loader=yaml.FullLoader는 YAML 데이터를 로드하기 위해 사용되는 로더입니다. 이제 data 변수에 YAML 파일의 데이터가 저장됩니다.

데이터 필터링하기

이제 data 변수에 저장된 YAML 데이터를 필터링할 수 있습니다. 필터링은 원하는 데이터만 추출하여 처리하는 과정입니다. 예를 들어, data 변수에 저장된 YAML 데이터에서 특정 필드만 추출하고 싶다면 다음과 같이 코드를 작성할 수 있습니다.

filtered_data = data['field_name']

위의 코드에서 ‘field_name’은 필터링하고자 하는 필드의 이름입니다. 이제 filtered_data 변수에는 필터링된 데이터가 저장됩니다.

데이터 검증하기

데이터 검증은 데이터의 유효성을 확인하는 과정입니다. PyYAML을 사용하여 YAML 데이터를 검증하는 방법은 스키마를 작성하고 해당 스키마를 기반으로 데이터를 검사하는 것입니다. 스키마는 데이터의 구조와 유형에 대한 규칙을 정의하는 문서입니다.

다음은 PyYAML을 사용하여 데이터를 검증하는 예제 코드입니다.

from jsonschema import validate

schema = {
    'type': 'object',
    'properties': {
        'field_name': {'type': 'string'},
    },
    'required': ['field_name']
}

validate(data, schema)

위의 코드에서 스키마는 field_name 필드의 값이 문자열이어야 함을 정의하고 있습니다. validate() 함수를 사용하여 데이터를 검증할 수 있습니다. 데이터가 스키마와 일치하지 않는 경우, validate() 함수는 예외를 발생시킵니다.

결론

이제 PyYAML을 사용하여 YAML 파일의 데이터를 필터링하고 검증하는 방법을 알게 되었습니다. PyYAML을 사용하면 YAML 데이터를 쉽게 처리할 수 있으며, 필요한 데이터를 추출하고 유효성을 검사할 수 있습니다.

참고 자료