get_account_number 함수에서는 리스트의 첫 번째 요소에 접근하려고 account_list.split(';')[0]처럼 [0]을 사용했는데, 여기서는 code_list.split(';')[:-1]처럼 [:-1]을 사용했습니다. 이 차이가 무엇일까요? 이를 알아보고자 앞 코드를 다음과 같이 고친 후 main.py 파일을 실행해 보겠습니다.
Kiwoom.py
(...)
def get_code_list_by_market(self, market_type):
code_list = self.dynamicCall("GetCodeListByMarket(QString)", market_type)
code_list = code_list.split(';')
return code_list
이 코드를 실행하면 다음 결과가 출력됩니다.
connected
['000020', '000040', '000050', (...), '700003', '700001', '900140', '']
출력 결과로 나온 리스트의 마지막 값을 보면 빈 값('')이 들어 있습니다. 처음 code_list에 저장된 종목 코드를 연결한 긴 문자열 마지막에 ‘;’이 붙어 있어 ‘;’ 값을 기준으로 앞부분과 뒷부분을 구분하다 보니 마지막에는 빈 값이 저장됩니다. 이 값은 종목 코드가 아니므로 [:-1]을 사용하여 마지막 빈 값을 제거한 후 code_list에 저장하여 반환하는 과정이 필요한 것입니다.