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

YAML은 사람이 읽고 쓰기 쉬운 데이터 직렬화 양식이며, 많은 언어에서 지원합니다. PyYAML은 Python에서 YAML을 다루기 위한 유용한 라이브러리입니다. 이번 글에서는 PyYAML을 사용하여 YAML 파일의 데이터를 필터링하고 분류하는 방법을 알아보겠습니다.

설치

먼저, PyYAML을 설치해야 합니다. 다음 명령을 사용하여 PyYAML을 설치할 수 있습니다:

pip install pyyaml

YAML 파일 읽기

먼저, YAML 파일을 읽어와서 데이터를 로드해야 합니다. 다음과 같이 PyYAML을 사용하여 YAML 파일을 읽을 수 있습니다:

import yaml

with open('data.yaml', 'r') as file:
    data = yaml.safe_load(file)

위 코드는 ‘data.yaml’ 파일을 열고, yaml.safe_load() 함수를 사용하여 YAML 파일의 내용을 파이썬 데이터 구조로 변환합니다.

데이터 필터링

이제 데이터를 필터링하여 원하는 부분을 선택할 수 있습니다. 예를 들어, ‘data.yaml’ 파일에는 여러 개의 항목이 있고, 그 중 일부 항목만 필요한 경우 다음과 같이 필터링할 수 있습니다:

filtered_data = [item for item in data if item['category'] == 'fruit']

위 코드는 ‘category’ 키의 값이 ‘fruit’인 항목들만 선택하여 filtered_data 리스트에 저장합니다.

데이터 분류

데이터를 필터링하는 것 외에도, PyYAML을 사용하여 데이터를 분류할 수도 있습니다. 예를 들어, ‘data.yaml’ 파일의 항목들을 ‘category’ 키의 값에 따라 분류하고 각각의 카테고리에 해당하는 항목들을 리스트로 저장하려면 다음과 같이 할 수 있습니다:

categories = {}
for item in data:
    category = item['category']
    if category in categories:
        categories[category].append(item)
    else:
        categories[category] = [item]

위 코드는 ‘category’ 키의 값에 따라 categories 딕셔너리의 키로 사용하여 분류합니다.

결과 출력

마지막으로, 필터링된 데이터나 분류된 데이터를 출력하여 확인할 수 있습니다. 예를 들어, 필터링된 데이터를 출력하려면 다음과 같이 할 수 있습니다:

for item in filtered_data:
    print(item)

분류된 데이터를 출력하려면 다음과 같이 할 수 있습니다:

for category, items in categories.items():
    print(f"{category}:")
    for item in items:
        print(item)
    print()

마치며

이제 PyYAML을 사용하여 YAML 파일의 데이터를 필터링하고 분류하는 방법에 대해 알아보았습니다. 이를 통해 YAML 파일의 데이터를 쉽게 처리하는데 도움이 될 것입니다. PyYAML에는 더 많은 기능과 옵션들이 있으니, 관련 문서와 예제 코드를 참고하시기 바랍니다.

참고 자료