API 데이터 찾기
본 예제에서는 한국도로공사 고속도로 공공데이터 포털을 이용해본다.
http://data.ex.co.kr/dataset/datasetList/list?pn=1&CATEGORY=TR&GROUP_TR=TIME_TCS
고속도로 공공데이터 포털
데이터 목록 Home > 데이터 > 데이터 목록 - 교통 서비스 전체 FILE OpenAPI 원문 LOD 업무 전체 교통 건설 유지관리 일반행정 통행료 휴게소 융합 <!-- Project : 공공데이터 개방시스템 확대구축 수정일자
data.ex.co.kr
- 실시간 영업소간 통행시간 클릭
- 예제 실행하기 클릭
- 다음과 같은 화면이 나타난다
- 인증키 입력 & 원하는 데이터 타입 체크
- url 결과 복사
API 데이터 가져오기
- 로컬에서 주피터랩 열어주기
- 코드 입력 Url 복붙 >> 데이터가 나타나지 않는다. url 을 수정한다.
🍓 url 세팅이 중요하다
- 사전에 예제 테스트를 미리 해보고, 해당 url 로 작업을 진행한다.
- 수정된 url : "http://data.ex.co.kr/openapi/trtm/realUnitTrtmkey=1308370912&type=json&iStartUnitCode=101&iEndUnitCode=103 "
import requests
url = "http://data.ex.co.kr/openapi/trtm/realUnitTrtm?key=1308370912&type=json&iStartUnitCode=101&iEndUnitCode=103"
#url의 데이터를 요청
req = requests.get(url)
#요청한 데이터가 제이슨이다 > 다음 함수로 제이슨 데이터를 읽어온다
json_df = req.json()
json_df
👉 다음과 같이 결과가 나타나면 성공
JSON 파일을 데이터프레임으로 가공
import pandas as pd
#pandas 데이터프레임과 구조가 유사하다. >> 원하는 부분을 추출해내는 방식도 유사
df = pd.DataFrame(json_df['realUnitTrtmVO'])
print(df)
[결과]
이제 좀 더 깔끔한 표 형식도 만들어보자.
cars = json_df['realUnitTrtmVO']
#반복되는 구간 확인, 리스트형이 있음. 그 부분을 추출
pd.DataFrame(cars)
records = []
for car in cars:
row_dict = {}
row_dict['date'] = car['stdDate']
row_dict['timeAvg'] = car['timeAvg']
records.append(row_dict)
pd.DataFrame(records)
cars 데이터프레임
records 데이터프레임
728x90
'Python > Pandas' 카테고리의 다른 글
[pandas] 날짜 데이터 다루기 (0) | 2023.08.09 |
---|---|
[API 다루기] XML 파일을 pandas 데이터프레임으로 (0) | 2023.08.07 |
[API 다루기] XML 데이터를 pandas 데이터프레임으로 (0) | 2023.08.07 |
[Django] 엑셀 데이터 출력 페이지 만들기(부록) - 결과값을 표로 깔끔하게 보여주기(pandas dataframe > django) (0) | 2023.08.03 |
[pandas 시계열자료] pd.to_datetime() 함수 (0) | 2023.03.13 |