국내주식에 대한 일봉/주봉/월봉, 분봉 데이터를 뽑아보자.
mojito2 모듈에서는 fetch-ohlcv 메서드를 통해서 데이터를 얻을 수 있는데, 리턴되는 값의 형식은 output2에 dictionary 타입으로 출력된다.

0. 객체 생성

import mojito
import pprint

key = "PStmW7....t"
secret = "7gPSHO....="
acc_no = "12345678-0"

# 객체 생성
broker = mojito.KoreaInvestment(api_key=key, api_secret=secret, acc_no=acc_no, mock=True)

1. 일봉 조회

resp = broker.fetch_ohlcv(
    symbol="005930", # 삼성전자
    timeframe='D',
    adj_price=True
)
#주봉 resp = broker.fetch_ohlcv(symbol="005930", timeframe='W', adj_price=True)
#월봉 resp = broker.fetch_ohlcv(symbol="005930", timeframe='M', adj_price=True)

pprint.pprint(resp)

** fetch_ohlcv **

def fetch_ohlcv(self, symbol: str, timeframe: str = 'D', start_day:str="", end_day:str="",
                adj_price: bool = True) -> dict:
    """fetch OHLCV (day, week, month)
    Args:
        symbol (str): 종목코드
        timeframe (str): "D" (일), "W" (주), "M" (월)
        start_day (str): 조회시작일자
        end_day (str): 조회종료일자
        adj_price (bool, optional): True: 수정주가 반영, False: 수정주가 미반영. Defaults to True.
    """
    if self.exchange == '서울':
        resp = self.fetch_ohlcv_domestic(symbol, timeframe, start_day, end_day, adj_price)
    else:
        resp = self.fetch_ohlcv_overesea(symbol, timeframe, end_day, adj_price)
    return resp

** fetch_ohlcv_domestic **
resp = requests.get(url, headers=headers, params=params) API를 호출하기 위한 문장으로, fetch_ohlcv에 의해 호출된 fetch_ohlcv_domestic메서드가 OpenAPI를 통한 데이터를 polling 하는 코드이다.

def fetch_ohlcv_domestic(self, symbol: str, timeframe:str='D', start_day:str="",
                            end_day:str="", adj_price:bool=True):
    """국내주식시세/국내주식 기간별 시세(일/주/월/년)
    Args:
        symbol (str): symbol
        timeframe (str, optional): "D": 일, "W": 주, "M": 월, 'Y': 년
        start_day (str, optional): 조회시작일자(YYYYMMDD)
        end_day (str, optional): 조회종료일자(YYYYMMDD)
        adjusted (bool, optional): False: 수정주가 미반영, True: 수정주가 반영
    """
    path = "/uapi/domestic-stock/v1/quotations/inquire-daily-itemchartprice"
    url = f"{self.base_url}/{path}"

    headers = {
        "content-type": "application/json",
        "authorization": self.access_token,
        "appKey": self.api_key,
        "appSecret": self.api_secret,
        "tr_id": "FHKST03010100"
    }

    if end_day == "":
        now = datetime.datetime.now()
        end_day = now.strftime("%Y%m%d")

    if start_day == "":
        start_day = "19800104"

    params = {
        "FID_COND_MRKT_DIV_CODE": "J",
        "FID_INPUT_ISCD": symbol,
        "FID_INPUT_DATE_1": start_day,
        "FID_INPUT_DATE_2": end_day,
        "FID_PERIOD_DIV_CODE": timeframe,
        "FID_ORG_ADJ_PRC": 0 if adj_price else 1
    }
    resp = requests.get(url, headers=headers, params=params)
    return resp.json()

Reference