He escrito el siguiente script para obtener la dirección Vin de Vin txids.
#!/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
para algunos txid obtengo o/p adecuado, por ejemplo:
[{u'MKHWXiX9Xm37jdCM8EzWMWNRJPhuwUxWiN': 50.0},{u'MVTpa2h3DGFWxkcmEkYLv4cYGggVprjjDZ': 300.0}]
pero para otros dice
response= response["result"]["vin"]
TypeError: 'NoneType' object has no attribute '__getitem__'
¿Por qué se comporta así? ¿No se supone que tiene una salida uniforme independientemente de los txids? Si mi enfoque es incorrecto, ¿cómo me estaba volviendo correcto para algunas identificaciones de tx nuevamente?
Ese error significa que response
o response['result']
es None
lo que significa que getrawtransaction
probablemente no pueda encontrar la identificación de transacción que está proporcionando.
Antes de intentar leer datos de la respuesta, asegúrese de que no lo sea None
y que realmente tenga un resultado.
criptomonedaKTM