Próbuję wykonać płatność Bitcoin z poziomu Pythona. W bash I zwykle to zrobić:Jak wychwycić wynik wyjątku z Pythona subprocess.check_output()?
bitcoin sendtoaddress <bitcoin address> <amount>
tak na przykład:
bitcoin sendtoaddress 1HoCUcbK9RbVnuaGQwiyaJGGAG6xrTPC9y 1.4214
jeśli jest udana uzyskać identyfikator transakcji jako wyjście, ale gdy próbuję przekazać kwotę większą niż należna bitcoin , pojawia się następujący komunikat:
error: {"code":-4,"message":"Insufficient funds"}
W moim programie Python ja teraz staram się robić płatności w następujący sposób:
import subprocess
try:
output = subprocess.check_output(['bitcoin', 'sendtoaddress', address, str(amount)])
except:
print "Unexpected error:", sys.exc_info()
Jeśli jest wystarczająco bilans to działa dobrze, ale jeśli nie ma wystarczającej ilości balansu sys.exc_info()
wypisuje to:
(<class 'subprocess.CalledProcessError'>, CalledProcessError(), <traceback object at 0x7f339599ac68>)
Nie zawierają błąd, który otrzymuję w wierszu poleceń chociaż. Moje pytanie brzmi; jak mogę uzyskać błąd wyjściowy ({"code":-4,"message":"Insufficient funds"}
) z poziomu Pythona?
Wszystkie wskazówki są mile widziane!
Czy chcesz zaakceptować jedną z odpowiedzi? – maxschlepzig