신이 되고 싶은 갓지이

7. Python 기초 - API 활용하여 데이터 수집하기 본문

Python

7. Python 기초 - API 활용하여 데이터 수집하기

갓지이 2024. 1. 19. 15:28

 1. 데이터 요청하기

# API를 이용해 자료를 받아오기 위힌 requests 라이브러리
import requests

# 받은 API 인증키를 입력
apikey = '인증키'

# 요청할 URL 주소를 만들기
# 한번에 최대 1천개까지만 가능하므로, 먼저 1부터 1000번 까지의 데이터를 가져온다
startnum = 1
endnum = 1000
url1 = f'http://openapi.seoul.go.kr:8088/{apikey}/json/bikeList/{startnum}/{endnum}/'

# 자료 요청
json1 = requests.get(url1).json()  # 데이터 요청 타입에 따라 변경할 수 있음 ex)텍스트 : .txt()

# 데이터 확인
json1

 

아래는 서울시 공공자전거의 실시간 대여 정보 데이터를 받기 위한 요청 URL 주소에 대한 설명이고 위의 코드는 이를 참조하여 작성했다. 데이터 분석을 위해 요청파일 타입을 데이터 프레임형식인 json으로 받았다.

 

 

2. 요청 받은 json 파일의 데이터 확인

보통 데이터 값에 대한 설명이 있겠지만, 만약 설명이 없거나 직접 확인을 해야하는 경우에는 다음과 같은 방법으로 확인 해 볼 수 있다. 

# 필요한 정보를 선택하기 위해 key값 확인
json1.keys()   # 결과 : dict_keys(['rentBikeStatus'])

# 원하는 데이터의 위치를 찾을 때 까지 key값을 통해 확인
json1['rentBikeStatus'].keys()   # 결과 : dict_keys(['list_total_count', 'RESULT', 'row'])

# 데이터 구조를 확인
json1['rentBikeStatus']['list_total_count']  # 데이터의 개수 : 1000
json1['rentBikeStatus']['RESULT']  # 오류 여부 : {'CODE': 'INFO-000', 'MESSAGE': '정상 처리되었습니다.'}
json1['rentBikeStatus']['row']  # 자전거 정류장별 자전거 현황 --> 필요한 데이터

# 필요한 데이터를 판다스의 데이터 프레임으로 전환
raw1 = pd.DataFrame(json1['rentBikeStatus']['row'])

 

json 파일 데이터 구조