-
서울시 체육시설 테니스장 예약 정보 가져오기 Python From 서울시 열린데이터 광장Life/Sports 2021. 3. 28. 12:19
서울에서 테니스장 예약하는게 솔직히 너무 어렵다. 테니스가 생각보다 사람들에게 인기도 많고, 수요에 비해 공간이 많이 부족하기 때문이다. 추가로 인터넷에서 테니스장 예약 정보를 찾기도 또 어려워서 테니스 한번 치기 위해서 너무 많은 공수가 들어간다. 그래서 오늘은 간략히 아래 서울시에서 제공하는 공공 체육시설 정보를 가져와서 서울시 내 테니스장 정보를 CSV 파일로 저장해보도록 하겠다.
data.seoul.go.kr/dataList/OA-2266/S/1/datasetView.do
서울시 체육시설 공공서비스예약 정보
서울시 및 산하기관, 자치구의 체육시설 중 예약가능한 목록 정보를 제공합니다. (이용종료된 데이터는 제외)
예약은 http://yeyak.seoul.go.kr 에서 직접 하셔야 하며, 데이터별 [바로가기 URL]항목data.seoul.go.kr
1. 데이터 가져오기
서울시 열린데이터광장에서 API 키를 신청하면 바로 데이터를 가져올 수 있을 것이다. 나는 파이썬을 통해서 데이터를 가져오도록 하겠다.
import pandas as pd import requests api='~~~' url=f'http://openAPI.seoul.go.kr:8088/{api}/json/ListPublicReservationSport/1/200/테니스장' res=requests.get(url) rdata=res.json()
rdata를 출력하면 아래와 같은 결과를 확인할 수 있을 것이다. 총 74개의 예약 정보가 있는 테니스 코트가 있고, 위도/경도 좌표, 유무료 여부, 예약 URL 링크 정보를 볼 수 있다.
2. 필요한 정보만 정리하여 CSV 파일로 저장
예약에 필요한 테니스코트별 위치, 에약 가능 여부, 주소, 유무료 여부, 전화번호, 예약 링크 정보를 위 Json 형태에서 정리해서 csv파일로 저장해도록 하겠다.
lat=[] lon=[] status=[] name=[] addr=[] url=[] free=[] tel=[] for i in rdata['ListPublicReservationSport']['row']: lat.append(i['Y']) lon.append(i['X']) status.append(i['SVCSTATNM']) name.append(i['SVCNM']) addr.append(i['AREANM']) url.append(i['SVCURL']) free.append(i['PAYATNM']) tel.append(i['TELNO']) df=pd.DataFrame({'Name':name,'Tel':tel,'address':addr,'Status':status,'Free/Paid':free,'lat':lat,'lon':lon,'url':url}) df.to_csv('서울시 테니스코드.csv',encoding='utf-8')