[Python] Requests모듈을 통해 json요청하고 파싱하기

Python에서 Requests모듈을 통해서 json 데이터를 요청하고 받아와서 파싱해보자.


환경 및 선수조건

  • Python(3.X)
  • requests 모듈, json 모듈


Requests?

  • HTTP 통신을 위한 파이썬 라이브러리로 urllib.request처럼 with문 사용없이 직관적으로 사용이 가능합니다.


Requests 기본 사용법

기본 예제

  • 홈페이지에 있는 내용을 그대로 가져왔습니다.
>>> import requests
>>> r = requests.get('https://api.github.com/user', auth=('user', 'pass'))
>>> r.status_code
200
>>> r.headers['content-type']
'application/json; charset=utf8'
>>> r.encoding
'utf-8'
>>> r.text
u'{"type":"User"...'
>>> r.json()
{u'private_gists': 419, u'total_private_repos': 77, ...}

다른 Method를 사용할 때

  • GET, POST, PUT, DELETE, HEAD, OPTIONS가 다 가능합니다.
>>> import requests
>>> r = requests.get('https://api.github.com/events')
>>> r = requests.post('http://httpbin.org/post', data = {'key':'value'})
>>> r = requests.put('http://httpbin.org/put', data = {'key':'value'})
>>> r = requests.delete('http://httpbin.org/delete')
>>> r = requests.head('http://httpbin.org/get')
>>> r = requests.options('http://httpbin.org/get')


json요청하고 파싱하기

  • 올린 json파일을 HTTP 요청을 통해서 받아오고 그걸 python에서 사용할 수 있는 dictionary형태로 파싱을 하는 코드입니다.

import requests
url = 'https://gist.githubusercontent.com/TWpower/771f9dfc8d9e1ddc0ecbdaea5b2e379e/raw/2c7785b4835138255bdadb71bd83702e53ac2677/test-example.json'

data = requests.get(url).json()


참고자료