[python] PyYAML을 이용하여 YAML 파일의 데이터를 특정 조건에 따라 그룹화하기

YAML은 사람이 쉽게 읽고 쓸 수 있는 데이터 직렬화 형식입니다. PyYAML은 Python에서 YAML 파일을 다루기 위한 라이브러리로, 데이터를 파이썬 객체로 읽고 쓰는 기능을 제공합니다. 이번에는 PyYAML을 사용하여 YAML 파일의 데이터를 특정 조건에 따라 그룹화하는 방법에 대해 알아보겠습니다.

필요한 라이브러리 설치

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

pip install pyyaml

YAML 파일 읽기

먼저, YAML 파일을 읽어와야 합니다. 다음과 같은 예제 YAML 파일을 가정해보겠습니다.

- name: Alice
  age: 27
  gender: female
  occupation: engineer
- name: Bob
  age: 32
  gender: male
  occupation: manager
- name: Carol
  age: 23
  gender: female
  occupation: designer

다음 코드를 사용하여 위 YAML 파일을 읽어올 수 있습니다.

import yaml

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

yaml.safe_load() 함수를 사용하여 YAML 파일의 데이터를 파이썬 객체로 변환합니다. 이제 data 변수에는 YAML 파일의 데이터가 저장되어 있습니다.

조건에 따라 그룹화

이제 데이터를 특정 조건에 따라 그룹화할 수 있습니다. 예를 들어, 남성과 여성으로 그룹화하려면 다음과 같은 코드를 사용할 수 있습니다.

grouped_data = {}

for item in data:
    gender = item["gender"]
    if gender not in grouped_data:
        grouped_data[gender] = []
    grouped_data[gender].append(item)

위 코드를 실행하면 grouped_data 변수에는 다음과 같이 그룹화된 데이터가 저장됩니다.

{
    "female": [
        {
            "name": "Alice",
            "age": 27,
            "gender": "female",
            "occupation": "engineer"
        },
        {
            "name": "Carol",
            "age": 23,
            "gender": "female",
            "occupation": "designer"
        }
    ],
    "male": [
        {
            "name": "Bob",
            "age": 32,
            "gender": "male",
            "occupation": "manager"
        }
    ]
}

결과 확인

그룹화된 데이터를 확인하려면 다음과 같이 출력할 수 있습니다.

for gender, items in grouped_data.items():
    print(f"{gender}:")
    for item in items:
        print(f"- name: {item['name']}")
        print(f"  age: {item['age']}")
        print(f"  occupation: {item['occupation']}")
    print()

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

female:
- name: Alice
  age: 27
  occupation: engineer
- name: Carol
  age: 23
  occupation: designer

male:
- name: Bob
  age: 32
  occupation: manager

이제 PyYAML을 이용하여 YAML 파일의 데이터를 특정 조건에 따라 그룹화하는 방법을 알게 되었습니다. 이를 응용하여 더 복잡한 그룹화 작업을 수행할 수도 있습니다. 추가적인 기능은 PyYAML의 공식 문서를 참조하시기 바랍니다.

참고 자료