Аз съм съвсем нов.
Написах този python скрипт, за да направя API извикване от blockr.io, за да проверя баланса на няколко bitcoin адреси.
Съдържанието на btcaddy.txt са биткойн адреси, разделени със запетаи. За този пример нека го анализира това.
import urllib2
import json
btcaddy = open("btcaddy.txt","r")
urlRequest = urllib2.Request("http://btc.blockr.io/api/v1/address/info/" + btcaddy.read())
data = urllib2.urlopen(urlRequest).read()
json_data = json.loads(data)
balance = float(json_data["data""address"])
print balance
raw_input()
Това обаче ми дава грешка. Какво правя погрешно? За сега, как да го накарам да отпечата баланса на адресите?
Отговори:
1 за отговор № 1Направихте няколко неща погрешно в кода си. Препоръчвам ви цикъл.
import json
import urllib
addresses = open("btcaddy.txt", "r").read()
base_url = "http://btc.blockr.io/api/v1/address/info/"
request = urllib.urlopen(base_url+addresses)
result = json.loads(request.read())["data"]
for balance in result:
print balance["address"], ":" , balance["balance"], "BTC"
Не се нуждаете от входен сигнал в края.
1 за отговор № 2
Въпросът ви е ясен, но опитите ви не.
Казахте, че имате файл, поне с повече от регистър. Така че трябва да изтеглите редовете на този файл.
with open("btcaddy.txt","r") as a:
addresses = a.readlines()
Сега можете да прегледате регистрите и да направите заявка към това uri. Най- urllib
модул е достатъчен за тази задача.
import json
import urllib
base_url = "http://btc.blockr.io/api/v1/address/info/%s"
for address in addresses:
request = urllib.request.urlopen(base_url % address)
result = json.loads(request.read().decode("utf8"))
print(result)
HTTP изпраща байтове като отговор, така че трябва да ни направите decode("utf8")
като подход за обработка на данни.