Я пытаюсь выполнить биткойновский платеж из Python. В bash я обычно делал бы это:
bitcoin sendtoaddress <bitcoin address> <amount>
так, например:
bitcoin sendtoaddress 1HoCUcbK9RbVnuaGQwiyaJGGAG6xrTPC9y 1.4214
Если он успешный, я получаю идентификатор транзакции как вывод, но если я попытаюсь передать сумму, большую, чем мой биткойновый баланс, я получаю следующий вывод:
error: {"code":-4,"message":"Insufficient funds"}
В моей программе Python теперь я пытаюсь сделать платеж следующим образом:
import subprocess
try:
output = subprocess.check_output(['bitcoin', 'sendtoaddress', address, str(amount)])
except:
print "Unexpected error:", sys.exc_info()
Если у вас достаточно баланса, он работает нормально, но если этого недостаточно, sys.exc_info()
распечатывает это:
(<class 'subprocess.CalledProcessError'>, CalledProcessError(), <traceback object at 0x7f339599ac68>)
Он не включает ошибку, которую я получаю в командной строке. Поэтому мой вопрос: как я могу получить выводимую ошибку ({"code":-4,"message":"Insufficient funds"}
) из Python?
Все советы приветствуются!