작성
·
838
답변 2
1
현재 최신소스를 사용하고 계시네요.
제가 프로그래밍할 때 발생하지 않았던 오류가 yoon님 운영환경에서 발생하는 것 같습니다.
처리 프로세스는 다음과 같습니다.
1. 매수처리하고 결과 받기 result = up.buy_limit_order(coin_name, price, amt)
2. result 변수에 저장된 메시지에서 오류가 발생하지 않으면(result['error']['message']가 정상적으로 처리되지 않는 경우)
3. result 변수에서 uuid를 찾아서(uuid = result['uuid']) 반환
yoon님 운영환경에서는 오류 메시지가 없음에도 불구하고 반환값에 uuid가 없는 경우(정상적으로 매수가 되지 않는)인 것 같습니다.
오류를 방지하기 위해 다음과 같이 처리해야할 것 같습니다.
try: #error message check
message = result['error']['message']
except: #no error message -> normal state
if message == '':
message = 'good'
try:
uuid = result['uuid']
except:
message = 'unknown error'
uuid = ''
감사합니다.
0
아래와 같습니다.
#지정가 매수
def buy_limit_order(up, coin_name, price, amt):
message = ''
uuid = 'none'
result = {'uuid': ''}
try:
result = up.buy_limit_order(coin_name, price, amt)
except:
message = "{}".format(sys.exc_info())
try: #error message check
message = result['error']['message']
except: #no error message -> normal state
if message == '':
message = 'good'
uuid = result['uuid']
return message, uuid
멀티코어님,
왜 오류가 발생하는지 설명도 해주시고 해결도 해주셔서 정말 감사드립니다.
알려주신대로 코드 수정 했습니다.
ubuntu20.04 환경에 python3.7.7 버전 사용중인데, 일단 코드 수정 해 놓은 상태에서 왠만하면 이 운영환경을 유지해야 할 것 같아요.
정말 감사드립니다!
추가 강의 제작을 하신다고 들었는데, 강의 나오면 추가 결제 바로 하겠습니다^^