아무것도 모르고 시작하는 코딩

파이썬(python) requests 라이브러리 사용 예시 | 아무것도 모르고 시작하는 코딩

ZNOS 2020. 9. 16. 15:39
반응형

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 형식의 정보

JSON 형식을 모른다면 → 2020/08/16 - [아무것도 모르고 시작하는 코딩] - JSON이란? | 아무것도 모르고 시작하는 코딩

 

JSON이란? | 아무것도 모르고 시작하는 코딩

JSON이란 데이터 표현 방식을 의미한다 http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99 위 주소는 서울시 실시간 대기 환경정보(openAPI)이다. 이를 클릭해 보면 아..

znos.tistory.com

 

저번시간에 만들었던 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) 가 발생합니다

 

끝.

 

공감 부탁 드려요 :) 

반응형