반응형
<완성본>
1. 공공데이터 포털
https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15000314
공공데이터포털에 로그인 후, OpenAPI 활용신청을 합니다.
(사용승인까지 시간이 걸릴 수 있습니다. 특히 주말의 경우 승인이 지연되었습니다.)
2. OpenAPI 조회
import requests
import json
from pandas import json_normalize
import pandas as pd
key = "인증키를 입력해주세요"
bus_stop_id = "100000001" # 종로2가사거리 정류장
bus_id = "123000010" # 741번 버스
ord_number = '77' # 741번 버스 순번
url = f'http://ws.bus.go.kr/api/rest/arrive/getArrInfoByRoute?ServiceKey={key}&stId={bus_stop_id}&busRouteId={bus_id}&ord={ord_number}&resultType=json'
response = requests.get(url)
if response.status_code == 200:
json_ob = json.loads(response.text)
data = json_ob['msgBody']['itemList']
df = json_normalize(data)
print(f"1번째 버스 현재 위치: {df['stationNm1'].iloc[0]}, 남은 시간: {df['arrmsg1'].iloc[0]}")
print(f"2번째 버스 현재 위치: {df['stationNm2'].iloc[0]}, 남은 시간: {df['arrmsg2'].iloc[0]}")
이외에도 OpenAPI로 다양한 정보를 받아볼 수 있습니다.
버스 정류장 번호(bus_stop_id)와 버스 번호(bus_id), 순번(ord_number)은 후술하겠습니다.
3. 버스 정보
https://data.seoul.go.kr/dataList/OA-1095/L/1/datasetView.do
서울시 노선현황을 다운받아,
버스 정류장 번호(bus_stop_id)(NODE_ID)와 버스 번호(bus_id)(ROUTE_DI), 순번(ord_number)을 찾을 수 있습니다.
반응형
'컴퓨터 > Python' 카테고리의 다른 글
[Python] 파이썬, 윈도우 화면에 이미지 그리기 (0) | 2024.04.22 |
---|---|
git 명령어 (0) | 2023.05.08 |
[Python] 파이썬, threading 간단 예제 (0) | 2023.03.27 |
[Python] 파이썬, multiprocessing 간단 예제 (0) | 2023.03.27 |
[Python] 파이썬, A value is trying to be set on a copy of a slice from a DataFrame 경고 (0) | 2023.03.26 |