일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- FastAPI
- ddit
- 단축키
- nodejs
- crud
- html
- jsp
- Error
- Android
- Mac
- Java
- Homebrew
- 자바
- 대덕인재개발원
- 생활코딩
- 이클립스
- spring
- 맥
- pyqt
- ibatis
- servlet
- JDBC
- 객체지향
- 자바문제
- API
- Oracle
- 반복문
- 컬렉션프레임워크
- python
- 배열
Archives
- Today
- Total
romworld
[API] 공공데이터포털 openAPI 데이터 가져오기 ( python) 본문
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 명칭 입력해주면됨
'etc' 카테고리의 다른 글
[sourcetree]basic password We couldn't connect to GitHub with your credentials (1) | 2024.01.04 |
---|---|
[Linux] 사용자, 그룹 및 권한 (0) | 2023.11.08 |
[Linux] 기본 명령어 (0) | 2023.11.08 |
OSM의 연결상태 모니터링 기능 (리눅스 크론탭) (1) | 2023.08.03 |
MQTT란? / mosquitto 설치 및 테스트 (0) | 2023.06.26 |
Comments