다음과 같은 내용의 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