새소식

Programming/python

[python3] yaml 다루기

  • -

python3 에서 yaml 파일을 다루려면 pyyaml 패키지를 먼저 설치해야 합니다.

python3 -m pip install pyyaml

 

패키지가 없어서 소스에서 설치할 때는 setup.py 를 실행시킵니다.

python3 setup.py install

 

사용할 때는 yaml 만 언급하면 됩니다.

import yaml

 

읽기 - 방법1

test = yaml.load(file("/home/me/test.yaml", "r"), Loader=yaml.SafeLoader)

 

읽기 - 방법2

data = """
a: 0
b: [1, 2]
c: false
d: 2.456
"""

test = yaml.load(data, Loader=yaml.SafeLoader)

 

※참고로 Loader 지정 안하면 경고가 따라다닙니다.

t1 = yaml.load("a: 1")
__main__:1: YAMLLoadWarning: calling yaml.load() without Loader=... is deprecated, as the default Loader is unsafe. Please read https://msg.pyyaml.org/load for full details.

 

Loader 옵션 쓰기 귀찮으면 yaml.load 대신 yaml.safe_load 를 쓰시면 됩니다.

test = yaml.safe_load(file("/home/me/test.yaml", "r"))

 

쓰기 - 방법1

with open("/home/me/test.yaml", "w") as f:
    yaml.dump(yamldata, f, default_flow_style=False)

 

쓰기 - 방법2

from pathlib import Path

Path("/home/me/test.yaml").write_text(yaml.dump(yamldata, default_flow_style=False))

※참고로 default_flow_style 은 저장되는 yaml 텍스트의 포맷 스타일을 지정하는 옵션입니다.

이 값이 True 이면 flow style 로 저장되고 False 이면 block style 로 저장됩니다.

 

flow style 예시

'{a: 0, b: [1, 2], c: false, d: 2.456}'

 

block style 예시

'a: 0

b:

    1

    2

c: false

d: 2.456'

 

기타 필요한 내용이 있으면 추가하도록 하겠습니다.

 

참고: https://pyyaml.org/wiki/PyYAMLDocumentation

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.