문제인식: Flask로 api를 서버에 켜서 여기에 request로 값을 요청하면 응답값이 한글인 경우 깨져서 나타나는 경우가 있다.
문제 해결: flask에서 사용하는 인코딩을 utf-8로 설정한다.
response = { 'sentence' : '\uc548\ub155\ud558\uc13\uc694'}
response가 위와 같이 한글이 깨지는 경우가 있다.
flask에서 사용하고 있는 인코딩이 utf-8이 아닌 ascii인 경우 발생한다.
따라서, flask를 호출할 때 ascii를 꺼주면 해결된다.
from flask import Flask
application = Flask(__name__)
application.config['JSON_AS_ASCII'] = Flase
그런데 flask 의 Response 모듈과 json.dump를 사용하는 경우에는 위 설정이 깨진 경우도 있다고 한다.
이 때, json.dumps에서 ascii 인코딩을 False한 후 encode를 utf-8로 변환하여 response를 넘겨주면 된다고 한다.
response = json.dumps(result)
Response(response, content_type = 'application/json: charset = utf-8')
response = json.dumps(response, ensure_ascii=False).encode('utf-8')
Response(response, content_type='application/json: charset=utf-8')
참고
python error 해결법: flask response 한글 깨짐 현상
python framework 중 하나인 flask 를 이용하여 값을 응답 하다보면 한글인 경우 아래와 같이 깨져서 나타나는 경우가 있다. { "sentence": "\uc548\ub155\ud558\uc138\uc694" } 이경우는 flask 에서 사용하고 있..
wotres.tistory.com
'Python' 카테고리의 다른 글
[Python] 파이썬 자릿수 조절(소수점, 반올림) (0) | 2022.12.10 |
---|---|
[Python] List 형태의 Dictionary 다루기 (0) | 2022.12.10 |
[Python] pandas read_exel에서 .xlsx 파일이 안 열릴 때 (0) | 2022.10.23 |
[Python] 딕셔너리 복사 (0) | 2022.10.01 |
[Python] enumerate()로 for문 돌리기 (0) | 2022.09.10 |