[python] PyYAML을 사용하여 YAML 파일에서 데이터 추출하기

YAML(또는 Yaml Ain’t Markup Language)은 사람이 읽고 작성하기 쉽고 컴퓨터가 파싱하기 쉬운 데이터 직렬화 형식입니다. PyYAML은 YAML 파일을 파싱하고 처리하기 위한 파이썬 라이브러리입니다.

이 튜토리얼에서는 PyYAML을 사용하여 YAML 파일에서 데이터를 추출하는 방법을 알아보겠습니다.

1. PyYAML 설치하기

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

pip install pyyaml

2. YAML 파일 파싱하기

다음으로, YAML 파일을 파싱하여 파이썬 데이터로 변환해야 합니다. PyYAML의 load() 함수를 사용하여 YAML 파일을 파싱할 수 있습니다.

import yaml

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

위 코드에서 data.yaml은 파싱하려는 YAML 파일의 경로입니다. yaml.load() 함수를 호출할 때 Loader=yaml.FullLoader를 명시적으로 지정하는 것이 좋습니다. 이는 보안 문제를 방지하기 위한 조치입니다.

3. 데이터 추출하기

이제 파싱된 데이터에서 필요한 값을 추출할 수 있습니다. YAML 파일은 트리 구조로 이루어져 있으므로, 트리의 각 노드에 접근하여 데이터를 추출할 수 있습니다.

예를 들어, 다음과 같은 YAML 파일이 있다고 가정해봅시다.

person:
  name: John
  age: 30
  address:
    street: 123 Main St
    city: New York

이 경우, data 변수를 사용하여 YAML 파일의 데이터를 추출할 수 있습니다.

name = data['person']['name']
age = data['person']['age']
street = data['person']['address']['street']
city = data['person']['address']['city']

위 코드에서 data 변수는 파싱된 YAML 파일의 데이터를 가리킵니다. data['person']['name']은 YAML 파일에서 person 노드의 name 값을 추출하는 것을 의미합니다. 마찬가지로 age, street, city 값을 추출할 수 있습니다.

4. 데이터 활용하기

추출한 데이터를 활용하기 위해서는 필요한 작업을 수행하면 됩니다. 예를 들어, 다음과 같이 데이터를 출력할 수 있습니다.

print(f"Name: {name}")
print(f"Age: {age}")
print(f"Address: {street}, {city}")

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

Name: John
Age: 30
Address: 123 Main St, New York

참고 자료