:: python

python :: yaml 파일 읽기, yaml 데이터 json data로 변환하기

토람이 2023. 4. 26. 13:37

다음과 같은 내용의 yaml 파일이 있다.

 

jobs:
  - developer
  - influencer
name: toramko

 

위 파일의 내용을 읽어서 json data 로 변환하려면

다음과 같이 yaml 라이브러리의 'safe_load' 를 사용하면 된다.

 

import yaml
import json

yaml_path = ""
json_data = {}

with open(yaml_path, 'r', encoding='utf-8') as file:
    yaml_data = yaml.safe_load(file)
    json_dic = json.dumps(yaml_data)
    json_data = json.loads(json_dic)

print(json_data)
# {'jobs': ['developer', 'influencer'], 'name': 'toramko'}

 

그런데 위 방식처럼 safe_load 로 yaml 파일을 읽어올 경우,

파일 내 데이터를 한꺼번에 json data 로 변환하게 된다.

 

만약 yaml 파일 내 데이터에 약간의 정제가 필요하다면

다음과 같이 'safe_load_all' 을 사용하여 데이터를 불러오는 과정에서 수정사항을 적용한 후에 json data 로 변환할 수 있다.

 

import yaml
import json

yaml_path = ""
json_data = {}

with open(yaml_path, 'r', encoding='utf-8') as file:
    yaml_data = yaml.safe_load_all(file)
    
    for yd in yaml_data:
        for k, v in yd.items():
            # yaml 파일 내 데이터 수정사항이 필요한 경우 여기서 가능
            json_data[k] = v

output = json.dumps(json_data, ensure_ascii=False)

print(output)
# {"jobs": ["developer", "influencer"], "name": "toramko"}

 

 

여기서 json_data 는 딕셔너리 타입,

output 은 string 타입인 것 주의! (json.dumps 했기 때문에)

300x250