💡 AI 인사이트

🤖 AI가 여기에 결과를 출력합니다...

댓글 커뮤니티

쿠팡이벤트

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

검색

    로딩 중이에요... 🐣

    [코담] 웹개발·실전 프로젝트·AI까지, 파이썬·장고의 모든것을 담아낸 강의와 개발 노트

    02.요약정리 | ✅ 저자: 이유정(박사)

    01. 공공데이터 API 사용법

    ✅ 저자: 이유정(박사)

    1. 필수 라이브러리 설치

    동기 방식 요청:

    pip install requests
    

    비동기 방식 요청 (성능 최적화 시):

    pip install aiohttp aiodns
    

    2. 공공데이터 API 사용 순서

    1. API URL 확인
    2. 인증키(서비스 키) 확보
    3. 요청 파라미터 구성
    4. JSON 응답 데이터 파싱 및 처리

    3. 비동기 방식 요청 예제 (aiohttp 사용)

    Jupyter에서 테스트 가능

    import aiohttp
    import json
    
    async def fetch_dummyjson():
        async with aiohttp.ClientSession(connector=aiohttp.TCPConnector(ssl=False)) as session:
            async with session.get("https://dummyjson.com/products") as resp:
                j = await resp.json()
                print(json.dumps(j, indent=2))
    
    • aiohttp는 asyncio 기반의 빠른 웹 요청을 위한 라이브러리입니다.
    • https://dummyjson.com 은 자유롭게 테스트 가능한 샘플 API입니다.

    4. 공공데이터포털에서 날씨 데이터 가져오기

    공공데이터 포털:

    👉 https://www.data.go.kr/data/15059093/openapi.do

    • 검색어: 종관
    • 활용 신청 후 서비스 키 획득

    Python 코드 예시:

    1) 라이브러리 임포트 및 함수 정의

    import requests
    
    def get_weather_data():
        url = "http://apis.data.go.kr/1360000/AsosDalyInfoService/getWthrDataList"
        params = {
            "serviceKey": "일반 인증키(Decoding)",
            "dataType": "JSON",
            "numOfRows": 10,
            "pageNo": 1,
            "dataCd": "ASOS",
            "dateCd": "DAY",
            "startDt": "20250101",
            "endDt": "20250106",
            "stnIds": "108"  # 서울 지점
        }
    
        response = requests.get(url, params=params)
        data = response.json()
    
        if data["response"]["header"]["resultCode"] == "00":
            item_list = data["response"]["body"]["items"]["item"]
            dict_list = []
            for item in item_list:
                item_dict = {
                    "date": item["tm"],                 # 날짜
                    "min_temp": item["minTa"],          # 최저기온
                    "max_temp": item["maxTa"],          # 최고기온
                    "cloud_amount": item["avgTca"],     # 평균 전운량
                    "max_snow": item["ddMes"],          # 일 최심적설
                    "rain": item["sumRn"]               # 일강수량
                }
                dict_list.append(item_dict)
            return dict_list
        else:
            return None
    

    2) Jupyter에서 실행 예:

    from api_scrap.weather_data import get_weather_data
    weather = get_weather_data()
    print(weather)
    

    ✅ 요약

    • 공공데이터 API는 requests 또는 aiohttp로 요청
    • 서비스 키와 파라미터를 정확히 입력
    • JSON 구조 이해하고 필요한 데이터만 추출
    • 테스트용 API(dummyjson.com)로 먼저 연습해 보기
    TOP
    preload preload