반응형
Python에서 json 파일을 저장하는 과정에서
한국어나 한자 등의 문자가 유니코드 형태(\uac00과 같은 형태)로 깨져 보이는 경우가 있습니다.
이런 경우에 글자 원본 그대로 인코딩되도록 변환하는 방법을
간략하게 정리하여 살펴보도록 하겠습니다.
json 변환 시 글자가 유니코드로 저장되는 예시
아래 예제 코드와 같이 json.dump 혹은 json.dumps 메서드를 기본 설정으로 사용하여
json 양식을 저장하게되면 아래와 같이 유니코드 형태로 출력이 됩니다.
import json
data = {'이름': '가나다라마바사'}
result = json.dumps(data)
print(result) # {"\uc774\ub984": "\uac00\ub098\ub2e4\ub77c\ub9c8\ubc14\uc0ac"}
json 변환 시 글자 원본 그대로 저장하는 방법
json.dump 및 json.dumps 메서드에는 ensure_ascii 인자의 기본 값이 True로
설정되어 있는데, 이 ensure_ascii 인자를 False로 지정해주시면
유니코드로 깨진 형태가 아닌 글자 원본 그대로를 저장할 수 있습니다.
import json
data = {'이름': '가나다라마바사'}
result = json.dumps(data, ensure_ascii=False)
print(result) # {"이름": "가나다라마바사"}