Ich versuche, eine Bitcoin-Zahlung innerhalb von Python durchzuführen. In Bash würde ich normalerweise folgendes tun:
bitcoin sendtoaddress <bitcoin address> <amount>
so zum Beispiel:
bitcoin sendtoaddress 1HoCUcbK9RbVnuaGQwiyaJGGAG6xrTPC9y 1.4214
Wenn dies erfolgreich ist, erhalte ich eine Transaktions-ID als Ausgabe. Wenn ich jedoch versuche, einen Betrag zu überweisen, der größer als mein Bitcoin-Guthaben ist, erhalte ich die folgende Ausgabe:
error: {"code":-4,"message":"Insufficient funds"}
In meinem Python-Programm versuche ich nun, die Zahlung wie folgt durchzuführen:
import subprocess
try:
output = subprocess.check_output(['bitcoin', 'sendtoaddress', address, str(amount)])
except:
print "Unexpected error:", sys.exc_info()
Wenn genügend Gleichgewicht vorhanden ist, funktioniert es einwandfrei, aber wenn nicht genügend Gleichgewicht vorhanden ist, wird sys.exc_info()
Folgendes ausgedruckt:
(<class 'subprocess.CalledProcessError'>, CalledProcessError(), <traceback object at 0x7f339599ac68>)
Der Fehler, den ich in der Befehlszeile erhalte, ist jedoch nicht enthalten. Meine Frage ist also: Wie kann ich den ausgegebenen Fehler ( {"code":-4,"message":"Insufficient funds"}
) aus Python heraus abrufen?
Alle Tipps sind willkommen!