[22.07.22] Python API
파이썬 API
#python #api
API
Application Programming Interface
- 컴퓨터나 컴퓨터 프로그램 사이의 연결
- 일종의 소프트웨어 인터페이스이며 다른 종류의 소프트웨어에 서비스를 제공
- 사용하는 방법을 기술하는 문서나 표준은 API 사양/명세
API 활용시 확인 사항
-
요청하는 방식에 대한 이해
- 인증 방식
- URL 생성
- 기본주소
- 원하는 기능에 대한 추가 경로
- 요청 변수
-
응답 결과에 대한 이해
- 응답 결과 타입(JSON)
- 응답 결과 구조
API 제공 사이트
영화 및 드라마 관련 데이터베이스 제공
복권회차별 당첨번호
https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo={회차 숫자 입력}
API 사용시 핵심 코드
import requests
url = f'여기는 API를 가져올 수 있는 {url}을 입력' f 포맷팅으로 변수가 입력 되도록 가능
params={
'키' : '값' # 이곳은 필요로 하는 사이트는 추가 정보 보내주기
}
response = requests.get(url) # 불러오는 자료가 json 이면 마지막에 .JSON() 붙여주기
API 프로젝트 예시코드
TMDB에서 검색을 통해 영화 데이터를 불러오고 movie_id를 통해 추천 영화를 다시 불러와 표현하는 코드
import requests
from pprint import pprint
def recommendation(title):
# 여기에 코드를 작성합니다.
base_url = 'https://api.themoviedb.org/3' # TMDB에서 공통으로 안바뀌는 부분의 URL
path = '/search/movie' # 가져오려는 데이터에 따라 변하는 부분
params = { # 데이터를 가져오기 위해 필요한 정보
'api_key': 'e2be94a1762b4b81af8b205d5e2bcb5f', # 자격 검증을 위한 사용자 키 확인
'language': 'ko-KR', # 옵션. 한글로 불러오도록
'query': title # search는 쿼리가 필수 입력 사항. 제목 입력되도록
}
response = requests.get(base_url+path, params=params).json()
if len(response['results']) < 1:
return None
mv_id = response['results'][0]['id']
base_url_2 = 'https://api.themoviedb.org/3'
path_2 = f'/movie/{mv_id}/recommendations'
params_2 = {
'api_key': 'e2be94a1762b4b81af8b205d5e2bcb5f',
'language': 'ko-KR'
}
response_2 = requests.get(base_url_2+path_2, params=params_2).json()
results_2 = response_2['results']
title_lst = []
for i in range(len(results_2)):
title_lst.append(results_2[i]['title'])
return title_lst
# 아래의 코드는 수정하지 않습니다.
if __name__ == '__main__':
"""
제목에 해당하는 영화가 있으면 해당 영화의 id를 기반으로 추천 영화 목록 구성
추천 영화가 없을 경우 []를 반환
영화 id 검색에 실패할 경우 None을 반환
(주의) 추천 영화의 경우 아래 예시 출력과 차이가 있을 수 있음
"""
pprint(recommendation('기생충'))
# ['조커', '1917', '조조 래빗', ..생략.., '살인의 추억', '펄프 픽션']
pprint(recommendation('그래비티'))
# []
pprint(recommendation('검색할 수 없는 영화'))
# None