한국거래소(KRX) OPEN API 기반 주식 데이터 수집 패키지
Project description
openstock-kr
openstock-kr은 한국거래소(KRX) OPEN API를 파이썬 환경에서 쉽고 안정적으로 수집할 수 있도록 도와주는 라이브러리입니다.
주식 시장의 지수, 종목별 시세, 종목 기본 정보 데이터를 몇 줄의 코드로 간단하게 수집하고, 분석에 바로 사용할 수 있도록 데이터 전처리(수치형 변환, 한글 컬럼명 매핑 등)를 자동화하여 제공합니다.
✨ 주요 기능
- 간편한 API 호출: KOSPI, KOSDAQ 시장의 데이터를 한 번의 메서드 호출로 병합하여 가져옵니다.
- 자동 예외 처리: 네트워크 지연, 서버 오류, 빈 데이터 응답 등의 예외 상황을 내부적으로 안전하게 처리합니다.
- 스마트한 수치형 변환: 문자열로 섞여 들어오는 숫자 데이터(예: 콤마가 포함된 거래대금, '무액면' 문자가 포함된 액면가 등)를 판별하여 안전하게
int또는float으로 변환합니다. - 컬럼명 언어 설정: 분석 편의를 위해 원본 영문 컬럼명(
en)과 번역된 한글 컬럼명(kr)을 선택할 수 있습니다.
📦 설치 방법
pip install --upgrade openstock-kr
🔑 사전 준비
- 이 라이브러리를 사용하려면 한국거래소 OPEN API(openapi.krx.co.kr)에서 무료로 발급하는 OPEN API 인증키(AUTH_KEY) 가 필요합니다.
- API 인증키 발급 이후, 다음의 API 서비스에 대해서 개별적으로 API이용신청과 거래소 담당자 승인이 완료되어야 합니다. (인증키만 발급받는 경우, API 서비스가 지원되지 않음)
- KRX 시리즈 일별시세정보
- KOSPI 시리즈 일별시세정보
- KOSDAQ 시리즈 일별시세정보
- 유가증권 일별매매정보
- 코스닥 일별매매정보
- 유가증권 종목기본정보
- 코스닥 종목기본정보
🚀 빠른 시작 (Quick Start)
1. 초기화
from OpenStock import OpenStock
# 발급받은 API 키 입력
api_key = "YOUR_API_KEY_HERE"
stock = OpenStock(api_key=api_key)
2. 시장 지수 데이터 수집 (get_index)
특정 일자의 지수(KRX, KOSPI, KOSDAQ) 데이터를 수집합니다.
# 기준일자 'YYYYMMDD' 형식 입력, col_lan='kr' 설정 시 한글 컬럼명 반환
df_index = stock.get_index('20260306', col_lan='kr')
print(df_index.head())
| 기준일자 | 계열구분 | 지수명 | 종가 | 대비 | 등락률 | 시가 | 고가 | 저가 | 거래량 | 거래대금 | 상장시가총액 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 20260306 | KRX | 코리아 밸류업 지수 | 2527.38 | -5.00 | -0.20 | 2485.89 | 2540.04 | 2437.12 | 98491925 | 19146024297629 | 2871927789805430 |
| 1 | 20260306 | KRX | KRX TMI | 3495.45 | 5.95 | 0.17 | 3431.22 | 3510.08 | 3358.95 | 1892509220 | 43601448268843 | 5038925260559923 |
| 2 | 20260306 | KRX | KRX 300 | 3727.16 | -1.82 | -0.05 | 3661.71 | 3745.96 | 3583.89 | 307812064 | 32413529432980 | 4571110141562820 |
| 3 | 20260306 | KRX | KRX 중대형 TMI | 3549.75 | 3.82 | 0.11 | 3484.93 | 3565.55 | 3411.35 | 805377051 | 37939022960371 | 4839605918579618 |
| 4 | 20260306 | KRX | KRX 중형 TMI | 2042.35 | 65.94 | 3.34 | 1976.53 | 2042.35 | 1940.34 | 497564987 | 5525493527391 | 268495777016798 |
3. 종목 시세 데이터 수집 (get_price)
특정 일자의 전 종목 시세(KOSPI, KOSDAQ) 데이터를 수집합니다.
df_price = stock.get_price('20260306', col_lan='kr')
print(df_price.head())
| 기준일자 | 종목코드 | 종목명 | 시장구분 | 소속부 | 종가 | 대비 | 등락률 | 시가 | 고가 | 저가 | 거래량 | 거래대금 | 시가총액 | 상장주식수 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 20260306 | 095570 | AJ네트웍스 | KOSPI | 4960 | 20 | 0.40 | 4925 | 5010 | 4825 | 180901 | 890216366 | 224453684640 | 45252759 | |
| 1 | 20260306 | 006840 | AK홀딩스 | KOSPI | 8050 | 40 | 0.50 | 8170 | 8170 | 7820 | 9714 | 77138585 | 106642866050 | 13247561 | |
| 2 | 20260306 | 027410 | BGF | KOSPI | 4115 | -85 | -2.02 | 4190 | 4190 | 4045 | 181608 | 741963097 | 393874594965 | 95716791 | |
| 3 | 20260306 | 282330 | BGF리테일 | KOSPI | 115000 | -300 | -0.26 | 113600 | 116900 | 113600 | 64886 | 7459422856 | 1987649190000 | 17283906 | |
| 4 | 20260306 | 138930 | BNK금융지주 | KOSPI | 18420 | -380 | -2.02 | 18190 | 18580 | 18090 | 921541 | 16892012835 | 5716223947860 | 310327033 |
4. 종목 기본 정보 수집 (get_stockinfo)
특정 일자의 종목 기본 정보(표준코드, 액면가, 상장주식수 등) 데이터를 수집합니다.
df_info = stock.get_stockinfo('20260306', col_lan='kr')
print(df_info.head())
| 표준코드 | 단축코드 | 한글종목명 | 한글종목약명 | 영문종목명 | 상장일 | 시장구분 | 증권구분 | 소속부 | 주식종류 | 액면가 | 상장주식수 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | KR7095570008 | 095570 | AJ네트웍스보통주 | AJ네트웍스 | AJ Networks Co.,Ltd. | 20150821 | KOSPI | 주권 | 보통주 | 1000 | 45252759 | |
| 1 | KR7006840003 | 006840 | AK홀딩스보통주 | AK홀딩스 | AK Holdings, Inc. | 19990811 | KOSPI | 주권 | 보통주 | 5000 | 13247561 | |
| 2 | KR7282330000 | 282330 | BGF리테일보통주 | BGF리테일 | BGF Retail | 20171208 | KOSPI | 주권 | 보통주 | 1000 | 17283906 | |
| 3 | KR7027410000 | 027410 | BGF보통주 | BGF | BGF | 20140519 | KOSPI | 주권 | 보통주 | 1000 | 95716791 | |
| 4 | KR7138930003 | 138930 | BNK금융지주보통주 | BNK금융지주 | BNK Financial Group Inc. | 20110330 | KOSPI | 주권 | 보통주 | 5000 | 310327033 |
📝 라이선스 (License)
This project is licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file openstock_kr-0.1.2.tar.gz.
File metadata
- Download URL: openstock_kr-0.1.2.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4bdd3fc15b334790b2538d282605bbc5f552a932133c44e22a397cd23109adfe
|
|
| MD5 |
ac07dd3110853aa1d0e64f385320f3c4
|
|
| BLAKE2b-256 |
ac8ecdf4981ce1c3c68a73b731a63d888fe6bd21748af67bd8e989415ee1b36b
|
File details
Details for the file openstock_kr-0.1.2-py3-none-any.whl.
File metadata
- Download URL: openstock_kr-0.1.2-py3-none-any.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
283d8086d499283764688da432eebf267119bf5bd0d8652f26c956c745a2c05e
|
|
| MD5 |
4533f3127c546f24c477dd798215d7db
|
|
| BLAKE2b-256 |
8cd6a9d306b45f4441b279bf8ca810ea8f387038d7dfc66532849bf3935df847
|