20.04.07(Tue) 스파르타 3주차 복습_파이썬 패키지 가상환경requests 를 이용한 데이터 가져오기

.·2020년 4월 7일
1

스파르타코딩클럽

목록 보기
11/14

1. 파이썬 패키지 requests 설치

  • 파이참에서 requests 라이브러리 불러오기
import requests # requests 라이브러리 설치 필요

r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()
print (rjson['RealtimeCityAir']['row'][0]['NO2'])
  • 설명
    : requests.get 이라 되어 있다. get 방식으로 요청을 한다는 것. 그것을 r 이라는 변수에 저장을 하고, r 이라는 변수에서 넘어온 json 데이터를 파이썬이 알아들을 수 있도록 딕셔너리 형태로 바꿔주는 함수를 호출해서 rjson 이라는 변수에 저장을 했다.
    : 그리고 그 변수에서 딕셔너리 방식을 이용해 데이터를 꺼내는 것.

2. 구의 이름을 넘겨주면 해당 구의 미세먼지 값을 돌려주는 함수 만들기

  • 코드를 뜯어보자.. ( 문송.. 합니다.ㅠㅠ )
import requests  # requests 라이브러리 설치 필요

r = requests.get('http://openapi.seoul.go.kr:8088/6d4d776b466c656533356a4b4b5872/json/RealtimeCityAir/1/99')
rjson = r.json()
# print (rjson['RealtimeCityAir']['row'])
# 여기서부터 보세용 ~.~
def get_mise(gu_name):
    for gu in rjson['RealtimeCityAir']['row']:
        if gu_name == gu['MSRSTE_NM']:
            return gu['MSRSTE_NM'], gu['IDEX_MVL']
    return '일치하는 구가 없습니다'


print(get_mise('서초구'))
for gu in rjson['RealtimeCityAir']['row']:
# list 를 하나하나 가져와서 보여주는 것!
# rjson['RealtimeCityAir']['row'][0] 이 제일 처음 gu 가 되는 것.
# for 문으로 [{},{},{},{},{}.....] 순서대로 하나하나 가져와서 보여주는 것.
# 딕셔너리 리스트를 순서대로 가져와서 gu 에 넣어준 것이다.

if gu_name == gu['MSRSTE_NM']:
# 그러니 gu['KEY']  == value 가져올 수 있는 것.
  • 결과

2. 미세먼지 값이 50 미만인 구 출력하기

  • 나의 계획
    : 숫자를 입력하면 그 숫자 미만인 구의 이름과 미세먼지를 불러오는 함수를 만드려고 한다.
    : 즉, 괄호에 숫자를 넣으면 그 숫자보다 미세먼지 값이 작은 구의 이름과 값을 넣으려는 것!

  • 결론 : 나의 성공!!!!

  • 버벅대던 초기 상태의 코드

def under_mise(number):
    for mise_num in rjson['RealtimeCityAir']['row']:
        if mise_num['IDEX_MVL'] < number:
            return mise_num['IDEX_MVL']

print(under_mise(60))
  • 거의 된 듯한 코드 같은데 뭐가 문제일까?
    : return 을 print 로 바꾸니까 다 나왔다.

  • 기분이 많이 좋아졌는데 return 과 print 이거 좀 헷갈린다.

  • 어쨋든 최종 코드

def under_mise(number):
    for gu in rjson['RealtimeCityAir']['row']:
        if gu['IDEX_MVL'] < number:
            print(gu['MSRSTE_NM'], gu['IDEX_MVL'])


under_mise(150)

이해하니까 기분이 좋다. ㅎㅎ

profile
.

0개의 댓글