1. API
Application Programming Interface. 프로그램들이 소통할 수 있는 인터페이스.
앞서서 RDB를 배울 때 DB API를 배운 적이 있다. 파이썬과 DB를 연결할 때 썼던 인터페이스다. 이를 이용해 DB에서 데이터를 가져오고 DB에 데이터를 넣을 수도 있었다.
API도 이처럼 다른 프로그램 또는 서버와 내 파이썬 코드를 연결하는 것이다. 이번에 배우는 API는 날씨 API로, 내 파이썬 코드로 원하는 지역의 원하는 날씨 정보를 가져올 수 있다. 데이터를 가져올 때 JSON 형식일 가능성이 높다.
a. JSON
Javascript Object Notation. 표기 방식은 파이썬 자료 형식 중 Dictionary와 비슷하게 key-value 값으로 묶여있다. Dictionary처럼 자료를 뽑아내면 된다.
2. 과정
① 원하는 웹 또는 서버에서 API KEY 확보
이 부분은 서비스마다 방식이 다르니 스킵
② API_KEY를 합친 API URI를 이용해 source를 받아온다
import requests
import json
API_KEY = '자기만의 키'
city_name = 'London' #원하는 도시 이름
# 원하는 도시의 현재 날씨를 가져오는 API URI
url = f' http://api.openweathermap.org/data/2.5/weather?q= {city_name}&appid={API_KEY}&units=metric'
# source 받아오기
source = requests.get(url)
# 받아온 source를 json 데이터로 변환
current_weather = json.loads(source.text)
③ 원하는 데이터 추려 정리하기
# 날씨 묘사(?) 가져오기
weather_description = json_data['weather'][0]['description']
#>>>'날씨 맑음'
# 온도 가져오기
temp_min = json_data['main']['temp_min']
#>>>26
* 아래와 같은 방식으로 param을 지정해 uri를 만들 수도 있다
# data.or.kr에서 국립암센터 정보 가져오기
url = 'http://apis.data.go.kr/B551172/Pancreatic14/dtlExamByType'
params = {
'serviceKey': API_KEY,
'type': 'xml, json',
'pageNo': '3999',
'numOfRows': '1',
'centerNm': '국립암센터',
'fromYear': '2010',
'toYear': '2019'
}
source = requests.get(url, params=params)
json_data = json.loads(source.text) #JSON 데이터로 변환
'Codestates AI 부트캠프 > 4. Data Engineering' 카테고리의 다른 글
[데이터 엔지니어링] 3-1 Docker (0) | 2023.06.26 |
---|---|
[데이터 엔지니어링] 2-4. NoSQL (0) | 2023.06.03 |
[데이터 엔지니어링] 2-2. Crawling (1) | 2023.06.03 |
[데이터 엔지니어링] 1-4 파이썬으로 DB 불러오기 (0) | 2023.05.26 |
[데이터 엔지니어링] 1-3 SQL(2) (0) | 2023.05.26 |