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

YAML은 사람이 읽고 쓰기에 쉬운 데이터 직렬화 형식입니다. 이 형식은 가독성이 높고 구조화된 데이터를 표현하는 데 적합합니다. 이번 블로그 포스트에서는 Python의 PyYAML 라이브러리를 사용하여 YAML 파일의 데이터를 필터링하고 분석하는 방법에 대해 알아보겠습니다.

PyYAML이란?

PyYAML은 YAML 형식의 데이터를 파이썬 객체로 변환하고, 파이썬 객체를 YAML로 다시 변환하는 기능을 제공하는 라이브러리입니다. 간단한 설치 명령으로 PyYAML을 설치할 수 있습니다. 아래의 명령을 사용하여 PyYAML을 설치해보세요.

pip install pyyaml

YAML 파일 읽기

우선 YAML 파일을 읽어와서 파이썬 객체로 변환해보겠습니다. 아래의 코드를 사용하면 YAML 파일의 내용을 파이썬 변수로 저장할 수 있습니다.

import yaml

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

위 코드에서 data.yaml 파일을 적절하게 변경하여 읽고자 하는 YAML 파일의 경로를 지정하세요. yaml.load() 함수는 YAML 파일을 읽어서 파이썬 변수로 변환합니다.

필터링된 데이터 얻기

YAML 파일에서 필요한 데이터만을 추출하기 위해 필터링을 수행해보겠습니다. 예를 들어, YAML 파일에는 여러 사용자 정보가 포함되어 있을 수 있습니다. 필터링하여 특정 사용자만을 추출해보겠습니다.

filtered_users = [user for user in data['users'] if user['age'] > 30]

위 코드에서 data['users']는 YAML 파일에서 ‘users’ 키에 해당하는 값(사용자 정보 리스트)을 가져옵니다. for 루프를 사용하여 각 사용자 정보를 검사하고, ‘age’ 키에 해당하는 값이 30보다 큰 경우만 추출하여 filtered_users 변수에 저장합니다.

데이터 분석

이제 필터링된 데이터를 사용하여 분석을 수행해보겠습니다. 예를 들어, 추출된 사용자들의 평균 연령을 계산해보겠습니다.

total_age = sum(user['age'] for user in filtered_users)
average_age = total_age / len(filtered_users)

위 코드에서는 filtered_users 리스트의 각 사용자의 ‘age’ 값을 합하여 total_age 변수에 저장합니다. 그리고 len(filtered_users)로 리스트의 길이를 구하여 평균 연령을 계산합니다.

결과 출력

마지막으로, 결과를 출력해보겠습니다. 아래의 코드를 사용하여 필터링된 사용자 및 평균 연령을 출력할 수 있습니다.

print("Filtered Users:")
for user in filtered_users:
    print(f"- Name: {user['name']}, Age: {user['age']}")

print(f"\nAverage Age: {average_age}")

위 코드에서는 filtered_users 리스트의 각 사용자의 이름과 연령을 출력합니다. 그리고 평균 연령을 출력합니다.

마무리

PyYAML을 사용하여 YAML 파일의 데이터를 필터링하고 분석하는 방법에 대해 알아보았습니다. 이를 통해 YAML 파일의 내용을 쉽게 파악하고 원하는 데이터를 추출하여 활용할 수 있게 되었습니다. PyYAML의 다양한 기능에 대해서는 공식 문서를 참조하세요.