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

PyYAML은 Python에서 YAML 파일을 파싱하고 생성하기 위한 라이브러리입니다. 이를 사용하여 YAML 파일의 데이터를 특정 조건에 따라 필터링하는 방법을 알아보겠습니다.

필터링할 YAML 파일 준비하기

먼저, 필터링을 적용할 YAML 파일을 준비해야 합니다. 예를 들어, 다음과 같이 data.yml 파일에 사용자 데이터가 저장되어 있다고 가정해봅시다.

- name: Alice
  age: 25
  city: New York
- name: Bob
  age: 30
  city: London
- name: Charlie
  age: 28
  city: Paris

PyYAML로 YAML 파일 파싱하기

PyYAML을 사용하여 YAML 파일을 파싱합니다. 다음과 같은 코드로 data.yml 파일을 파싱할 수 있습니다.

import yaml

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

데이터 필터링하기

이제 데이터를 필터링하기 위한 조건을 지정합니다. 예를 들어, 나이가 30 이하인 사용자들만 필터링하고 싶다면 다음과 같은 코드를 작성할 수 있습니다.

filtered_data = [user for user in data if user['age'] <= 30]

위 코드에서 data는 파싱한 YAML 데이터이며, filtered_data는 조건에 맞는 사용자들만 저장됩니다.

결과 확인하기

마지막으로, 필터링된 결과를 확인할 수 있습니다. 예를 들어, filtered_data를 출력해보면 필터링된 사용자들의 정보가 출력됩니다.

for user in filtered_data:
    print(user)

출력 결과는 다음과 같을 것입니다.

{'name': 'Alice', 'age': 25, 'city': 'New York'}
{'name': 'Bob', 'age': 30, 'city': 'London'}

여기까지 PyYAML을 이용하여 YAML 파일의 데이터를 특정 조건에 따라 필터링하는 방법을 알아보았습니다. 이를 응용하여 다양한 조건에 맞는 데이터를 추출할 수 있습니다.

참고 문서

주의: PyYAML 라이브러리의 load 함수는 YAML 파일의 내용을 직접 파싱하므로, 안전하지 않은 YAML 파일이나 악의적인 코드가 포함된 YAML 파일을 사용할 때는 주의해야 합니다. 신뢰할 수 있는 소스에서만 YAML 파일을 사용하거나, 파싱 전에 데이터를 검증하는 등의 방식을 사용해야 합니다.