Ich habe das folgende Skript geschrieben, um die Vin-Adresse von Vin txids zu erhalten.
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests,json
url="http://asd:asdf@localhost:2332"
payload={}
payload = {"jsonrpc":1,"id":"curltext"}
txid= "10ff6ff5bdc73d7bb6d711c6896618a05479d061e67f576a0950328c1389035f"
addresses = []
payload["method"]="getrawtransaction"
payload["params"]=[txid,1]
response = requests.post(url,json.dumps(payload))
response =response.json()
response= response["result"]["vin"]
for data in response:
raw_tx1=data["txid"]
vout_int=data["vout"]
payload["params"]=[raw_tx1,1]
response_ = requests.post(url,json.dumps(payload))
response_= response_.json()
data_ =response_["result"]["vout"]
for item in data_:
if item["n"] == vout_int:
json_data ={}
json_data[item["scriptPubKey"]["addresses"][0]] = item["value"]
addresses.append(json_data)
print addresses
für einige txids bekomme ich zum Beispiel das richtige o/p:
[{u'MKHWXiX9Xm37jdCM8EzWMWNRJPhuwUxWiN': 50.0},{u'MVTpa2h3DGFWxkcmEkYLv4cYGggVprjjDZ': 300.0}]
aber für andere sagt es
response= response["result"]["vin"]
TypeError: 'NoneType' object has no attribute '__getitem__'
Warum verhält es sich so? Soll es nicht unabhängig von txids eine einheitliche Ausgabe haben? Wenn mein Ansatz falsch ist, wie war ich dann wieder für einige TX-IDs richtig?
Dieser Fehler bedeutet, dass entweder response
oder response['result']
ist, None
was bedeutet, dass getrawtransaction
die von Ihnen angegebene Transaktions-ID wahrscheinlich nicht gefunden werden kann.
Bevor Sie versuchen, Daten aus der Antwort zu lesen, vergewissern Sie sich, dass dies nicht der Fall ist None
und tatsächlich ein Ergebnis liefert.
cryptoKTM