[python] PyYAML을 이용하여 YAML 파일의 데이터를 특정 조건에 따라 새로운 필드로 변환하기

많은 경우에 YAML 파일을 사용하여 데이터를 구조화하고 저장하는 것이 효과적입니다. PyYAML은 Python에서 YAML 파일을 파싱하고 조작하는 데 사용되는 모듈입니다. 이 블로그 포스트에서는 PyYAML을 사용하여 YAML 파일의 데이터를 특정 조건에 따라 새로운 필드로 변환하는 방법을 알아보겠습니다.

필요한 패키지 설치

먼저 PyYAML 패키지를 설치해야 합니다. 아래의 명령어를 사용하여 PyYAML을 설치할 수 있습니다.

pip install pyyaml

YAML 파일 읽기

먼저 YAML 파일을 읽고 해당 데이터를 파이썬 객체로 변환해야 합니다. 이를 위해 yaml.load() 함수를 사용합니다.

import yaml

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

위의 코드에서 data.yml은 읽을 YAML 파일의 경로입니다.

데이터 변환하기

이제 YAML 파일의 데이터를 특정 조건에 따라 새로운 필드로 변환할 수 있습니다. 예를 들어, YAML 파일에 있는 name 필드의 값이 “John”인 경우에만 age 필드를 추가하여 데이터를 변환해보겠습니다.

for item in data:
    if item["name"] == "John":
        item["age"] = 30

위의 코드에서 data는 YAML 파일의 데이터를 담고 있는 파이썬 리스트입니다.

변환된 데이터 저장하기

마지막으로, 변환된 데이터를 YAML 파일에 저장할 수 있습니다. 이를 위해 yaml.dump() 함수를 사용합니다.

with open("new_data.yml", "w") as file:
    yaml.dump(data, file)

위의 코드에서 new_data.yml은 저장할 YAML 파일의 경로입니다.

완성된 코드

아래는 위에서 설명한 과정을 포함한 완성된 코드입니다.

import yaml

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

for item in data:
    if item["name"] == "John":
        item["age"] = 30

with open("new_data.yml", "w") as file:
    yaml.dump(data, file)

위의 코드를 실행하면 YAML 파일의 데이터에서 특정 조건을 만족하는 경우에만 age 필드가 추가된 새로운 YAML 파일이 생성됩니다.

결론

PyYAML을 사용하여 YAML 파일의 데이터를 특정 조건에 따라 새로운 필드로 변환하는 방법을 알아보았습니다. 이를 통해 YAML 파일의 데이터를 효과적으로 조작할 수 있으며, 유연한 데이터 처리와 구조화에 도움이 됩니다.