python 메모

[python] requests 라이브러리 한글 인코딩

2021. 7. 27. 15:16
목차
  1. ⊙requests 라이브러리에서의 한글 깨짐 현상
  2. ⊙requests 라이브러리에서의 한글 깨짐 해결
  3. *json.dump(), json.dumps() 차이

⊙requests 라이브러리에서의 한글 깨짐 현상

한글의 경우 requests, 라이브러리를 통해 전달할 때, 특별히 주의해야 한다. 아래 예시처럼 json이 자동으로 ascii로 변환하기 때문에 입력이 깨져서 전달이 되기 때문이다. 

import json

post_data = {"item": "한글 인코딩"}

with open('sample.json', 'w') as f:
    json.dump(post_data, f)
  
  
# sample.json 파일 열어보면 아래와 같이 저장되어 있음
{"item": "\ud55c\uae00 \uc778\ucf54\ub529"}

한글 데이터를 json.dump()로 저장하고 해당 파일을 열면 한글이 ascii 인코딩으로 저장이 된다. requests를 통해 데이터를 전달할 때도 json.dump()로 전달하기 때문에 동일한 현상이 일어난다.

 

 

⊙requests 라이브러리에서의 한글 깨짐 해결

한글을 utf-8로 인코딩하여 전달하기 위해서는 다음과 같이 json.dumps()를 사용하고 ensure_ascii=False를 하고 .encode('utf-8')를 사용하여 전달할 데이터를 처리해야 한다.

import json

post_data = {"item": "한글 인코딩"}

json.dumps(post_data, ensure_ascii=False).encode('utf8')
>>>> b'{"item": "\xed\x95\x9c\xea\xb8\x80 \xec\x9d\xb8\xec\xbd\x94\xeb\x94\xa9"}'

 

 

*json.dump(), json.dumps() 차이

  • json.dump(): serialized된 python 객채들을 파일에 저장할 때 사용
  • json.dumps(): python 객체들을 json 포맷으로 인코딩'만'할 때 사용
728x90
저작자표시 비영리 동일조건 (새창열림)

'python 메모' 카테고리의 다른 글

[sklearn] classification_report 결과 파일로 저장하기  (0) 2021.09.02
[python] eval() 내장함수  (0) 2021.08.29
[pandas] apply + custom function을 사용한 다중 입력 및 출력  (0) 2021.06.10
[python] datetime 사용하기  (0) 2021.06.06
[python] First-Class Function과 Closure, Decorator  (0) 2021.06.01
  1. ⊙requests 라이브러리에서의 한글 깨짐 현상
  2. ⊙requests 라이브러리에서의 한글 깨짐 해결
  3. *json.dump(), json.dumps() 차이
'python 메모' 카테고리의 다른 글
  • [sklearn] classification_report 결과 파일로 저장하기
  • [python] eval() 내장함수
  • [pandas] apply + custom function을 사용한 다중 입력 및 출력
  • [python] datetime 사용하기
Fine애플
Fine애플
이것저것
Fine애플
끄적끄적
Fine애플
전체
오늘
어제
  • 분류 전체보기 (167)
    • 논문 및 개념 정리 (27)
    • Pattern Recognition (8)
    • 개발 (57)
    • python 메모 (45)
    • pytorch, tensorflow (5)
    • 알고리즘 (9)
    • Toy Projects (4)
    • 통계이론 (2)
    • Reinforcement Learning (10)

블로그 메뉴

  • 홈

공지사항

인기 글

태그

  • BigBird
  • pandas
  • container
  • Docker
  • GPU
  • Bert
  • 자연어
  • 딥러닝
  • miniconda
  • ubuntu
  • nlp
  • reinforcement learning
  • python
  • 언어모델
  • Probability
  • PyTorch
  • tensorflow
  • 개발환경
  • 알고리즘
  • transformer

최근 댓글

최근 글

hELLO · Designed By 정상우.
Fine애플
[python] requests 라이브러리 한글 인코딩
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.