반응형
Python JSON 파일 한글 깨짐 해결법
파이썬을 사용하다보면, Dict 형태의 자료형을 json.dump()와 함께 json으로 저장하는 일이 빈번하다.
하지만, JSON 파일을 열어보면 한글이 \u290과 같은 유니코드 형태로 변경되어 있는 경우가 많다.
매번 해결하고도, 까먹어서 다시 검색하는 일이 잦아 아예 포스팅을 하기로 결정했다.. ㅋㅋ
해결 방법을 알아보자!
문제 상황
import json
json_dict = {
"file_path" : "/data/project",
"model_type" : "Recognizer",
"version" : "V1.1.0",
"current_status" : "개발"
}
with open("./my.json", "w", encoding="utf-8") as f:
json.dump(json_dict, f, indent="\t")
# 결과
# {
# "file_path" : "/data/project",
# "model_type" : "Recognizer",
# "version" : "V1.1.0",
# "current_status" : "\uac1c\ubc1c"
# }
별도의 옵션 없이 json dump를 뜨면 일반적으로 한글은 저렇게 깨져서 유니코드 형태로 출력되게 된다.
이는 기본적으로 json.dump가 ascii만을 다루게끔 설정이 되어 있기 때문인데, 이를 ensure_ascii 라는 flag 형태로 False로 변경할 수 있다.
해결 방안
import json
json_dict = {
"file_path" : "/data/project",
"model_type" : "Recognizer",
"version" : "V1.1.0",
"current_status" : "개발"
}
with open("./my.json", "w", encoding="utf-8") as f:
json.dump(json_dict, f, indent="\t", ensure_ascii=False)
# 결과
# {
# "file_path" : "/data/project",
# "model_type" : "Recognizer",
# "version" : "V1.1.0",
# "current_status" : "개발"
# }
반응형