공공데이터 오픈 API로 데이터 분석 [Python 3.x] 샘플코드

2021. 5. 6. 15:45·데이터과학/Python
반응형

공공데이터 API 연동을 통해 데이터를 분석하려고 하는데, 

 

시작부터 막혀서 잘 안되는 경우가 있었습니다. 

 

다른거보다 많이 올라와 있는 샘플코드들이 Python 2.x인 경우가 많아서 업데이트가 필요해 보입니다. 

 

# Python 2.x 샘플 코드 #


from urllib2 import Request, urlopen
from urllib import urlencode, quote_plus

url = 'http://apis.data.go.kr/B552584/RfidFoodWasteServiceNew/getTotalTimeList'
queryParams = '?' + urlencode({ quote_plus('ServiceKey') : '서비스키', quote_plus('type') : 'xml', quote_plus('disYear') : '2020', quote_plus('disMonth') : '06', quote_plus('page') : '1', quote_plus('rowNum') : '10' })

request = Request(url + queryParams)
request.get_method = lambda: 'GET'
response_body = urlopen(request).read()
print response_body

 

공공데이터 포털 중에서 한국환경공단_음식물쓰레기 배출정보에 대한 샘플코드인데, 그래도 진행해보면 실행이 되지 않습니다. 

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

그래서 코드를 좀 정리할 필요가 있습니다. Python 3.x에 맞도록 수정해봤습니다. 

 

우선 requests는 install이 필요합니다. C://와 가상환경(venv)에 모두 설치되었는지 확인합니다. 

 

pip install requests

 

import requests as rq
import urllib.parse as parse

url = "http://apis.data.go.kr/B552584/RfidFoodWasteServiceNew/getTotalTimeList"
service_key = "서비스키"
queryParams = '?' + parse.urlencode({ parse.quote_plus('ServiceKey') : '서비스키',
                                      parse.quote_plus('type') : 'xml',
                                      parse.quote_plus('disYear') : '2020',
                                      parse.quote_plus('disMonth') : '06',
                                      parse.quote_plus('page') : '1',
                                      parse.quote_plus('rowNum') : '10' })

res = rq.get(url, queryParams)
print(res)

 

urllib와 urllib2는 urllib로 통합되었습니다. 

 

urlencode와 quote_plus는 urllib.parse에 포함되어 있습니다. 

 

공공데이터 API의 기본원리는 해당 url로 서비스키(encode) + 변수를 request하면 response로 특정 값이 전송되는 방식입니다. 

 

python에서 작동시켜면 

 

<Response [200]>이 오면 정상이고

 

[404]가 오면 error 입니다. 

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'데이터과학 > Python' 카테고리의 다른 글

[Pandas 기초] SPYDER IDE 설치 및 개발 환경 시작하기  (0) 2021.10.21
UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 190: illegal multibyte sequence [python error]  (0) 2021.10.21
ImportError: No module named requests [Python 오늘의 에러]  (1) 2021.05.06
[Python 오늘의 에러] Non-ASCII Character 관련된 한글 에러 문제  (8) 2021.05.06
파이썬 개발자들이 연결되는 축제의 장, 기대되는 파이콘 한국 2019  (0) 2019.08.01
'데이터과학/Python' 카테고리의 다른 글
  • [Pandas 기초] SPYDER IDE 설치 및 개발 환경 시작하기
  • UnicodeDecodeError: 'cp949' codec can't decode byte 0xec in position 190: illegal multibyte sequence [python error]
  • ImportError: No module named requests [Python 오늘의 에러]
  • [Python 오늘의 에러] Non-ASCII Character 관련된 한글 에러 문제
건축 부트캠프 코다
건축 부트캠프 코다
건축 부트캠프 코다
  • 건축 부트캠프 코다
    건축 부트캠프 코다
    건축 부트캠프 코다
  • 전체
    오늘
    어제
    • 분류 전체보기 (324)
      • 리뷰마트 (37)
        • 앱리뷰 (9)
        • 테크리뷰 (2)
        • 제품리뷰 (4)
        • 산해진미 (9)
        • 건축현상공모리뷰 (13)
      • 건축 (51)
        • 건축 동네안테나 (34)
        • 시공,구조,재료,설비 (9)
        • 지자체별기준 (2)
      • 데이터과학 (16)
        • 머신러닝 (2)
        • R Studio (4)
        • Rapidminer (0)
        • Python (10)
      • 테크 (85)
        • I T일반 (32)
        • CAD&BIM (21)
        • 코딩일반 (7)
        • GNU (4)
        • 클라우드 서버 (2)
        • 애플 (19)
      • 경제 (47)
        • 스타트업경영 (27)
        • 블로그 마케팅 (9)
        • 바이오섹터 (3)
        • 정보기술섹터 (4)
        • 소비내구재섹터 (1)
        • 부동산 공동주택 (2)
        • 세금에대하여 (1)
      • 그외 (83)
        • 소담소담 (11)
        • 취업직장 (26)
        • 상식,자격증,스펙 (30)
        • 영어 스터디 (16)
  • 블로그 메뉴

    • HOME
  • 링크

    • 이규빈님의 블로그
    • ironyfunny
    • 영화분석
    • 성민장군
    • 서현 연구실
    • MindForest
    • socialstory
    • 5osa
    • 오렌지노의 소리상자
    • 몬이의 블루마블
    • feverboo
    • 션라이프
    • 웹디자인
    • CADREAM
    • 지구의 관점에서 기후변화 뉴스를 전하는, 지구曰
  • 공지사항

  • 인기 글

  • 태그

    토플
    삼성
    건축사
    프로젝트서울
    워드프레스
    면접
    블로그
    NEAR
    애플
    영어
    건설
    엠코
    아이패드
    honeybee
    단어
    건축가
    토익
    GRASSHOPPER
    건축
    취업
    라이노
    BIM
    미래
    현대
    아이폰
    구글
    설치
    diva
    잡스
    Ladybug
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.0
건축 부트캠프 코다
공공데이터 오픈 API로 데이터 분석 [Python 3.x] 샘플코드
상단으로

티스토리툴바