etc
[API] 공공데이터포털 openAPI 데이터 가져오기 ( python)
inderrom
2023. 11. 14. 17:55
1. 공공데이터포털
- 회원가입 후 필요한 api 검색후 신청
- 신청후 받은 "인증키" 로 url 접속
- 필요한 파라미터 상세보기에 나와있으므로 문서보면서 사용하면 됨
2. 파이썬 코드 작성
- 필요한 패키지 import
- 하드코딩을 할 경우 페이지가 바뀔 때마다 유지보수 어려움이 있으므로
- 페이지의 일부만 가져와서 , json 속성으로 안에있는 data 전체를 csv에 저장
from urllib.request import Request, urlopen
from urllib.parse import urlencode
import pandas as pd
import json
base_url = "https://api.odcloud.kr/api/15002831/v1/uddi:48d98d67-24eb-457b-8413-f452f763540a"
api_key = '인증키'
page = 1
per_page = 10
total_data = []
while True:
params = {
'page': page,
'perPage': per_page,
'serviceKey': api_key,
}
# API request&response
url = f"{base_url}?{urlencode(params)}"
response = urlopen(url)
json_api = json.loads(response.read().decode('utf-8'))
if not json_api['data']:
break
# data append
total_data.extend(json_api['data'])
# next page
page += 1
# DataFrame
df = pd.DataFrame(total_data)
print(df)
# csv file save
df.to_csv("save_csv3.csv", mode='w', index=False)
3. 리눅스에서 실행해보기
- 로컬 -> 원격으로 보낼 때 파일을 scp로 직접 넣어줄 수도 있지만, 방화벽문제로 막혀있는 경우
- 나는 파일 하나만 넣어주면 되어서 (애초에 파이썬 설치가 완료되어있는 상황)
- 파일을 만들어서 vi로 직접 스크립트 내용 넣어줌
- python3 파일명.py << 실행권한을 먼저 줘야한다
- chmod +x 파일명.py
- 명령어 입력 후 실행하면 완성 ~~
- 만약 필요한 라이브러리가 install 안되어있을 시 pip3 install 명칭 입력해주면됨