해결된 질문
작성
·
50
0
from pykiwoom.kiwoom import Kiwoom
kiwoom = Kiwoom()
kiwoom.CommConnect(block=True)
accounts = kiwoom.GetLoginInfo("ACCNO")
first_account = accounts[0]
data = kiwoom.block_request("opw00001",
계좌번호= first_account,
비밀번호 ="xxxxx",
비밀번호입력매체구분="00",
조회구분=2,
output="예수금상세현황",
next=0)
deposit = data["예수금"]
print(f'계좌 예수금: {deposit}원') 코드 입력하고
PS C:\Users\sanmok\kiwoom> C:/Users/sanmok/anaconda3/Scripts/activate
PS C:\Users\sanmok\kiwoom> conda activate 32bit
PS
C:\Users\sanmok\kiwoom> python chapter4_1.py하면 로그인창이 나타나고 금방 사라지면서
[GetPCIdentity] VER 3.2.0.0 build 2015.8.12
[GetPCIdentity] VER 3.2.0.0 build 2015.8.12 이렇게 나오고 로그인 할 때 비밀번호는 id비밀번호를 말하는 건가요> 아니면 4자리수 비밀번호를 의미하나요? 코드에서 id비밀번호를 입력하는 건지,4자리수 비밀번호를 입력하는 건지? 분명히 코드 id 비밀번호나 4자리수 비밀번호를 넣더라도 다음과 같은 khopenapi에 "계좌비밀번호 입력창을 통해 조회에서 사용한 계좌번호 비밀번호를 입력하라고나옴(44) 분명히 비밀 번호를 넣었느데... 엄청 어렵네요, 딴사람들은 어떤지 모르겠네요/
답변 3
0
새로 openapi 등등을 다운로드 설치했는데 지금의 문제는 키움 openapi 로그창의 비밀번호가 틀리다는 메세지가 게속 나옵니다. 이비밀번호를 뭘 입력해야 되나요? 계좌비밀번호 입력하는 것 아닌가요? 계좌비밀번호를 입력해도 계속 에러발생합니다.그러니 당연히 아래와 같은 아이콘이 생기지 않습니다.
원인이 뭔지 모르겠네요
Open API 로그인 할 때 비밀번호 오류인걸로 보입니다. 해당 비밀번호는 계좌 비밀번호가 아니라 키움증권 홈페이지에 로그인하실 때 사용하였던 본인의 아이디와 비밀번호를 사용하셔야 합니다.
감사합니다.
from pykiwoom.kiwoom import Kiwoom
kiwoom = Kiwoom()
kiwoom.CommConnect(block=True) # 로그인 창을 띄워 로그인을 진행합니다. block=True는 로그인 완료까지 코드 실행을 대기시킵니다.
accounts = kiwoom.GetLoginInfo("ACCNO") # 로그인한 계좌 목록을 가져옵니다. 문자열 형태로 계좌번호가 반환됩니다.
first_account = accounts[0] # 첫 번째 계좌를 선택합니다.
# 예수금 상세 정보 요청
# '예수금'은 "opw00001" TR을 사용하여 조회할 수 있습니다.
# 첫 번째 매개변수는 TR 코드, 두 번째는 계좌번호 10자리, 세 번째는 비밀번호(미사용 시 ""),
# 네 번째는 조회구분(2: 일반조회, 3: 추정조회), 마지막은 요청구분(0: 조회, 1: 파일로 저장)입니다.
data = kiwoom.block_request("opw00001",
계좌번호=first_account,
비밀번호="",
비밀번호입력매체구분="00",
조회구분=2,
output="예수금상세현황",
next=0)
# 예수금 정보 출력
deposit = data['예수금']
print(f"계좌 예수금: {deposit}원") 이렇게 입력하면 이번에는
PS C:\OpenAPI\kiwoom> python chapter4_1.py
QAxBase::setControl: requested control KHOPENAPI.KHOpenAPICtrl.1 could not be instantiated
Traceback (most recent call last):
File "C:\OpenAPI\kiwoom\chapter4_1.py", line 3, in <module>
kiwoom = Kiwoom()
File "C:\Users\sanmok\anaconda3\Lib\site-packages\pykiwoom\kiwoom.py", line 36, in init
self._set_signals_slots()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\sanmok\anaconda3\Lib\site-packages\pykiwoom\kiwoom.py", line 221, in setsignals_slots
self.ocx.OnReceiveTrData.connect(self.OnReceiveTrData)
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'QAxWidget' object has no attribute 'OnReceiveTrData'
PS C:\OpenAPI\kiwoom> 이런 에러발생 합니다.
from pykiwoom.kiwoom import Kiwoom
kiwoom = Kiwoom()
kiwoom.CommConnect(block=True) # 로그인 창을 띄워 로그인을 진행합니다. block=True는 로그인 완료까지 코드 실행을 대기시킵니다.
accounts = kiwoom.GetLoginInfo("ACCNO") # 로그인한 계좌 목록을 가져옵니다. 문자열 형태로 계좌번호가 반환됩니다.
first_account = accounts[0] # 첫 번째 계좌를 선택합니다.
# 예수금 상세 정보 요청
# '예수금'은 "opw00001" TR을 사용하여 조회할 수 있습니다.
# 첫 번째 매개변수는 TR 코드, 두 번째는 계좌번호 10자리, 세 번째는 비밀번호(미사용 시 ""),
# 네 번째는 조회구분(2: 일반조회, 3: 추정조회), 마지막은 요청구분(0: 조회, 1: 파일로 저장)입니다.
data = kiwoom.block_request("opw00001",
계좌번호=first_account,
비밀번호="",
비밀번호입력매체구분="00",
조회구분=2,
output="예수금상세현황",
next=0)
# 예수금 정보 출력
deposit = data['예수금']
print(f"계좌 예수금: {deposit}원") 이렇게 입력하면 이번에는
PS C:\OpenAPI\kiwoom> python chapter4_1.py
QAxBase::setControl: requested control KHOPENAPI.KHOpenAPICtrl.1 could not be instantiated
Traceback (most recent call last):
File "C:\OpenAPI\kiwoom\chapter4_1.py", line 3, in <module>
kiwoom = Kiwoom()
File "C:\Users\sanmok\anaconda3\Lib\site-packages\pykiwoom\kiwoom.py", line 36, in init
self._set_signals_slots()
~~~~~~~~~~~~~~~~~~~~~~~^^
File "C:\Users\sanmok\anaconda3\Lib\site-packages\pykiwoom\kiwoom.py", line 221, in setsignals_slots
self.ocx.OnReceiveTrData.connect(self.OnReceiveTrData)
^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'QAxWidget' object has no attribute 'OnReceiveTrData'
PS C:\OpenAPI\kiwoom> 이런 에러발생 합니다.
해당 에러가 발생하는 원인은 다양한데 대표적으로 32bit 파이썬이 제대로 설치되지 않았을 수 있습니다.
Anaconda Prompt에서 현재 실습 중이신 (visual studio에서 파이썬을 실행시킨) 가상환경을 아래 명령어를 통해서 활성화하고
conda activate [가상환경 이름]
아래 명령어를 이어서 실행해보시기 바랍니다.
python -c "import platform; print(platform.architecture())"
그랬을 때 아래처럼 32bit가 나와야 합니다. 64bit이 나오면 32bit 가상환경이 제대로 설치되지 않은 것이니 강의 "2-1 파이썬 가상환경 설정"을 따라 32bit 가상환경을 설치해 주시기 바랍니다.
만약 위 그림처럼 32bit가 정상적으로 나타난다면 visual studio에서 해당 가상환경으로 코드를 실행한 것이 맞는지 체크해 주시기 바라며, 그럼에도 오류가 지속된다면 다시 문의 부탁드립니다.
0
안녕하세요. 박가네데이터랩입니다.
질문하신 코드의 block_request 메서드의 "비밀번호" 인자는 ""와 같이 비워두셔야 하며,
코드를 실행하면 아래처럼 작업 표시줄에 키움증권 open api 아이콘이 생깁니다. 해당 아이콘을 우클릭하시어 계좌번호 등록을 클릭하시면 뜨는 창에서 아래 그림과 같이 "비밀번호"에 0000을 입력 후 "등록" 버튼을 누르신 후 재시도해보시기 바랍니다.
0
안녕하세요, 인프런 AI 인턴입니다.
이석헌님께서 주신 질문은 로그인 과정에서 발생하는 문제와 관련이 있습니다. 주로 “계좌비밀번호 입력창”이 나타나는 이유와 코드 내에서 어떤 비밀번호를 입력해야 하는지에 대한 부분이라고 말씀하셨습니다.
로그인 창 사라짐 문제:
비밀번호 입력:
비밀번호
는 보통 “계좌 비밀번호”를 의미합니다. 일반적으로 4자리로 설정된 비밀번호가 이에 해당합니다.ID 비밀번호
는 로그인 창에서 입력하는 정보로서, 이는 주로 Open API 로그인 창에서 처리됩니다. 이곳에서는 계좌 비밀번호가 사용자가 지정한 4자리의 비밀번호입니다.추가 확인 사항:
비슷한 주제로 더 많은 정보를 찾으실 수 있는 링크를 하나 소개해 드릴게요:
- Chapter 4-1(예수금 조회).py 실행 오류 - 이는 예전의 비슷한 문제를 가진 질문자로서, 커뮤니티에서 제공한 해결 방법이 포함되어 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
당연히 위의 비밀번호 "" 비워두었는데....