Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- Scheduling
- wireshark
- DATABASE
- S3
- docker
- Kotlin
- HTML
- mysql
- Util
- mongoose
- AWS
- Crawling
- postman
- node.js
- OOAD
- OS
- React
- MongoDB
- typeorm
- python
- css
- macos
- Android
- Network
- Express
- sequelize
- linux
- TypeScript
- algorithm
- ubuntu
Archives
- Today
- Total
Seongwon Lim
[Python] json.dump() 한글 깨짐 현상 해결하기 본문
반응형
서론
파이썬으로 json파일에 데이터를 저장할 때, 한글 깨짐 현상이 발생하는 경우가 있다.
특히, 쓰기 메서드인 json.dump() 메서드를 사용할 때 해당 현상이 빈번히 일어난다.
이번 글에서는 해당 오류를 해결하는 방법을 간단하게 알아보고자 한다.
예제 코드
import json
data = {
"name": "홍길동",
"nation": "Korea",
"age": 25,
"hobby": ["코딩", "축구", "영화보기"]
}
with open("./test.json", 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4)
위 코드는 test.json 파일에 data 라는 변수를 저장하는 코드이다.
실제 코드를 돌려보면 결과는 다음과 같다.
{
"name": "\ud64d\uae38\ub3d9",
"nation": "Korea",
"age": 25,
"hobby": [
"\ucf54\ub529",
"\ucd95\uad6c",
"\uc601\ud654\ubcf4\uae30"
]
}
영어나 숫자의 경우는 제대로 나오지만 한글의 경우 유니코드 표현으로 저장된 것을 확인할 수 있다.
이처럼 open() 인자로 encoding='utf-8' 옵션을 주어도 한글 인코딩이 제대로 되지 않는 경우가 발생한다.
해결 방법
해결 방법은 아주 간단하다. dump() 메서드에 인자로 아래 옵션을 추가하면 된다.
ensure_ascii=False
해당 옵션을 추가한 코드는 다음과 같다.
with open("./test.json", 'w', encoding='utf-8') as f:
json.dump(data, f, indent=4, ensure_ascii=False)
그리고 다시 결과를 확인해보면
{
"name": "홍길동",
"nation": "Korea",
"age": 25,
"hobby": [
"코딩",
"축구",
"영화보기"
]
}
한글이 깨지지 않고 우리가 작성한 것과 똑같은 데이터가 저장된 것을 확인할 수 있다.
'Python' 카테고리의 다른 글
[Python] 구글 번역 API 사용하기 (0) | 2022.05.17 |
---|---|
[Python] 파이썬 라이브러리 사용법 (0) | 2022.05.16 |
[Python] datetime 모듈로 날짜 및 시간 구하기 (0) | 2022.05.15 |
[Python] Counter 클래스를 이용한 단어 빈도 세기 (0) | 2022.05.10 |
[Python] 변수(Variable)란 무엇일까? (0) | 2022.05.08 |
Comments