더북(TheBook)

하지만 주의해야 할 점은 ‘주문상태’라는 키가 이미 존재했기 때문에 조회가 가능했으며, 반대로 존재하지 않는 키에 접근하려고 하면 에러가 발생합니다. 이 부분은 2장에서 딕셔너리를 다룰 때 설명했습니다.

self.order['007700']['체결량'] ------ error!

딕셔너리에 또 다른 딕셔너리가 저장된다는 점을 이해했다면 다음은 이렇게 저장한 정보들을 s_gubun에 맞게 출력하는 코드가 등장합니다. s_gubun 값이 0인 주문 접수/체결 상태일 때는 self.order를 출력하고, s_gubun 값이 1인 잔고 이동 상태일 때는 self.balance를 출력합니다.

if int(s_gubun) == 0: ------ s_gubun 값에 따라 저장한 결과 출력
    print("* 주문 출력(self.order)")
    print(self.order)
elif int(s_gubun) == 1:
    print("* 잔고 출력(self.balance)")
    print(self.balance)

Note ≡


s_gubun 값이 0인 주문 접수/체결 상태일 때는 주문 정보가 self.order에 저장되어 있지만 잔고로 이동하지는 않았으므로 self.balance는 비어 있는 상태입니다. 반대로 s_gubun 값이 1인 잔고 이동 상태일 때는 self.balance에 잔고 정보(보유 수량, 총 매입가, 손익률 같은 정보) 값이 저장되어 있는 동시에 이전 단계에서 저장했던 self.order에도 접수/체결 정보가 여전히 남아 있습니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.