requests 라이브러리 사용
"openAPI에서 데이터를 가져올 때 requests 라이브러리를 사용합니다"
서울시 OpenAPI 를 사용해 List / Dictionary / 함수 / if / for문 연습을 해보겠습니다.
requests 패키지를 설치하는 방법은 저번 포스팅을 참조하시면 됩니다
2020/09/15 - [아무것도 모르고 시작하는 코딩] - 파이썬(python) requests 라이브러리 설치(feat.파이참) | 아무것도 모르고 시작하는 코딩
서울시 권역별 실시간 대기환경 현황
API 요청(request) URL : http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99
위의 주소를 들어가 보면 JSON 형식으로 서울시 대기환경 현황을 볼 수 있다
JSON 형식을 모른다면 → 2020/08/16 - [아무것도 모르고 시작하는 코딩] - JSON이란? | 아무것도 모르고 시작하는 코딩
저번시간에 만들었던 app.py에서 다음과 같은 코드를 붙여넣기 해보자
1. 중구의 NO2 값 가져오기
import requests # requests 라이브러리 설치 필요
# requests 를 사용해 요청(Request)하기
response_data = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
# 응답(response) 데이터인 json을 쉽게 접근할 수 있게 만들어 city_air 에 담고
city_air = response_data.json()
# 값을 출력
print(city_air['RealtimeCityAir']['row'][0]['NO2'])
terminal 창에서 pip install requests를 입력하여 requests 라이브러리를 설치했다면 파이썬 파일에 불러오기 위해 코드 첫줄에 import requests를 입력한다
response_data = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
→ response_data를 해당 주소에서 requests를 통해 데이터를 가져오는 것이라고 하자
city_air = response_data.json()
→ city_air를 response_data를 json 형식으로 만드는 거라고 하자
print(city_air['RealtimeCityAir']['row'][0]['NO2'])
→ city_air에서 RealtimeCityAir라는 딕셔너리에 row라는 리스트에 0번째 딕셔너리에서 NO2 값을 출력해라
파이참에서 오른쪽 상단에 run(▶) 버튼을 누르거나 Shift+F10 버튼을 누르면 print 함수가 작동하여 결과값이 나온다(0.029)
2. 모든 구의 PM10 값을 프린트하기
import requests # requests 라이브러리 설치 필요
# requests 를 사용해 요청(Request)하기
response_data = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
# 응답(response) 데이터인 json을 쉽게 접근할 수 있게 만들어 city_air 에 담고
city_air = response_data.json()
gu_infos = city_air['RealtimeCityAir']['row']
for gu_info in gu_infos:
print(gu_info['MSRSTE_NM'], gu_info['PM10'])
gu_infos = city_air['RealtimeCityAir']['row']
→ gu_infos는 city_air에서 RealtimeCityAir라는 딕셔너리에 row라는 리스트다
for gu_info in gu_infos:
→ gu_info라는 반복문은 gu_infos에서 첫번째 요소부터 마지막 요소까지 (아래 함수를)반복시키는 것이다
print(gu_info['MSRSTE_NM'], gu_info['PM10'])
→ gu_info에서 [MSRSTE_NM] 값, gu_info에서 [PM10]값을 출력해라
3. PM10 값이 20 미만인 구
import requests # requests 라이브러리 설치 필요
# requests 를 사용해 요청(Request)하기
response_data = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
# 응답(response) 데이터인 json을 쉽게 접근할 수 있게 만들어 city_air 에 담고
city_air = response_data.json()
gu_infos = city_air['RealtimeCityAir']['row']
for gu_info in gu_infos:
if gu_info['PM10'] < 20:
print(gu_info['MSRSTE_NM'], gu_info['PM10'])
gu_infos = city_air['RealtimeCityAir']['row']
→ gu_infos는 city_air에서 RealtimeCityAir라는 딕셔너리에 row라는 리스트다
for gu_info in gu_infos:
→ gu_info라는 반복문은 gu_infos에서 첫번째 요소부터 마지막 요소까지 (아래 함수를)반복시키는 것이다
if gu_info['PM10'] < 20:
→ gu_info에서 [PM10]값이 20보다 작으면
print(gu_info['MSRSTE_NM'], gu_info['PM10'])
→ gu_info에서 [MSRSTE_NM] 값, gu_info에서 [PM10]값을 출력해라
파이썬에서는 들여쓰기(indent)로 블록 단위를 나눕니다(JS에서는 { } 사용)
들여쓰기를 잘못하면 들여쓰기 에러(indentation error) 가 발생합니다
끝.
공감 부탁 드려요 :)
'아무것도 모르고 시작하는 코딩' 카테고리의 다른 글
야구 순위 웹 스크래핑(a.k.a 크롤링 in Korea) | 아무것도 모르고 시작하는 코딩 (0) | 2020.09.19 |
---|---|
파이썬 웹 스크래핑(a.k.a 크롤링 in Korea) - 정보를 긁어오자(feat. BS4, beautifulSoup | 아무것도 모르고 시작하는 코딩 (2) | 2020.09.18 |
파이썬(python) requests 라이브러리 설치(feat.파이참) | 아무것도 모르고 시작하는 코딩 (0) | 2020.09.15 |
python(파이썬) 패키지란? 라이브러리란? | 아무것도 모르고 시작하는 코딩 (0) | 2020.09.14 |
<오늘의 책> 프로젝트 데모버전 완성 | 아무것도 모르고 시작하는 코딩 (0) | 2020.09.11 |