파이썬으로 네이버 밴드 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 |
---|