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.
Release files for openstock-kr 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| openstock_kr-0.1.2.tar.gz | 9.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| openstock_kr-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 16.5 kB
Release files / openstock_kr-0.1.2.tar.gz
| Download URL | openstock_kr-0.1.2.tar.gz |
|---|---|
| Size | 9.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4bdd3fc15b334790b2538d282605bbc5f552a932133c44e22a397cd23109adfe
|
|
BLAKE2b-256 checksum How to use checksums |
ac8ecdf4981ce1c3c68a73b731a63d888fe6bd21748af67bd8e989415ee1b36b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.7
|
Release files / openstock_kr-0.1.2-py3-none-any.whl
| Download URL | openstock_kr-0.1.2-py3-none-any.whl |
|---|---|
| Size | 7.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
283d8086d499283764688da432eebf267119bf5bd0d8652f26c956c745a2c05e
|
|
BLAKE2b-256 checksum How to use checksums |
8cd6a9d306b45f4441b279bf8ca810ea8f387038d7dfc66532849bf3935df847
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.7
|