所以我有这段代码。每当我运行代码时,它到达第3行时,大约需要20秒钟来完成get请求。没有理由要花费这么长时间,而且每次都持续花费很长时间。有什么帮助吗?

def get_balance(addr):
try:
    r = requests.get("http://blockexplorer.com/api/addr/"+addr+"/balance")
    return int(r.text)/10000000
except:
    return "e"

最佳答案

大多数时候对我有用。

>>> def get_balance(addr):
...   try:
...       start = time.time()
...       r = requests.get("http://blockexplorer.com/api/addr/"+addr+"/balance")
...       end = time.time()
...       print(f"took {end - start} seconds")
...       print(r.text, "satoshis")
...       return int(r.text)/100000000
...   except:
...       return "e"
...
>>>
>>> get_balance("1HB5XMLmzFVj8ALj6mfBsbifRoD4miY36v")
took 0.7754228115081787 seconds
151881086 satoshis
15.1881086


但是,如果我连续执行了多次,偶尔会收到错误消息“比特币JSON-RPC:工作队列深度超出。代码:429”

像我一样打印r.text,这可能会向您显示来自Block Explorer的错误消息。可能是他们开始限制您的速率。

关于python - Python请求lib花费的时间比执行get请求的时间更长,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48030675/

10-12 01:56