파이썬으로 네이버 밴드 API 를 사용하면서 발견한 부분이다.

 

밴드 API를 사용하여 url request 를 요청하면 response body 의 content-type 은 json 이다. 

이 부분에서 url 을 호출하고 json을 처리하는 방식으로 2가지 모듈을 사용할 수 있다. 

 

-

 

우선 파이썬 표준 라이브러리 문서에서는 Requests 패키지를 권장한다. 

더 높은 수준의 HTTP 클라이언트 인터페이스라고 명기되어 있다.

 

-

 

파이썬 버전은 Python 3.7

 

✔ urllib

  • 데이터를 보낼 때 인코딩하여 바이너리 형태로 보내준다.
  • 페이지가 없을 경우 에러 발생한다.
post_api_url = "https://openapi.band.us/v2/band/posts?access_token=" + access_token + "&band_key=" + band_key + "&locale=ko_KR"

# url 호출
post_req = urllib.request.Request(post_list_url)
post_res = urllib.request.urlopen(post_req)

# decoding 처리
# decoded_post = post_res.read().decode("utf-8")

# json parsing
post_list_json = json.loads(decoded_post)

 

status 확인 시에는

 

requests

  • 데이터를 보낼 때 딕셔너리 형태로 보내준다.
  • 페이지가 없어도 에러를 발생시키지 않는다.
post_api_url = "https://openapi.band.us/v2/band/posts?access_token=" + access_token + "&band_key=" + band_key + "&locale=ko_KR"

# url 호출
result = requests.get(post_api_url)

# encoding 처리
# result.encoding = 'utf-8'

# HTTP 상태코드
# print(result.status_code)

# json parsing
post_list_json = result.json()

 

두가지를 비교해보면 코드도 requests 패키지가 간결한 것을 확인할 수 있다. 

 

 

 

[참고]

docs.python.org/ko/3.10/library/urllib.request.html

 

urllib.request — URL을 열기 위한 확장 가능한 라이브러리 — Python 3.10.0a6 문서

urllib.request — URL을 열기 위한 확장 가능한 라이브러리 소스 코드: Lib/urllib/request.py urllib.request 모듈은 복잡한 세계에서 URL(대부분 HTTP)을 여는 데 도움이 되는 함수와 클래스를 정의합니다 — 기

docs.python.org

zetawiki.com/wiki/%ED%8C%8C%EC%9D%B4%EC%8D%AC_requests

 

파이썬 requests - 제타위키

다음 문자열 포함...

zetawiki.com

requests.readthedocs.io/en/master/

 

Requests: HTTP for Humans™ — Requests 2.25.1 documentation

Requests: HTTP for Humans™ Release v2.25.1. (Installation) Requests is an elegant and simple HTTP library for Python, built for human beings. Behold, the power of Requests: >>> r = requests.get('https://api.github.com/user', auth=('user', 'pass')) >>> r.

requests.readthedocs.io

 

'Python' 카테고리의 다른 글

[python] 한국어 자연어처리 KoNLPy 실행 시 오류  (0) 2021.03.22