你好,我正在使用Python进行编程,我有一个脚本可以让Binance获得比特币的价格。这是我的代码:
import requests
import json
url = requests.get('https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT')
data = url.json()
print(data['price'])
但是我想有一个脚本,可以在价格改变时进行更新。你知道我该怎么做吗?
非常感谢您!
答案 0 :(得分:1)
不幸的是,这似乎是一个问题,您无法听事件,而您不得不“询问”数据。
在这种情况下,您可以执行一些操作,例如每隔几分钟左右询问价格,并在价格发生变化时采取措施。
import requests
import json
import time
lastPrice = 0
def priceChanged():
# Handle the price change here
print("The price changed!")
# Forever
while True:
url = requests.get('https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT')
data = url.json()
# Change the string price into a number
newPrice = float(data['price'])
# Is it different to last time?
if (newPrice != lastPrice):
lastPrice = newPrice
priceChanged()
# Wait 2 mintues
time.sleep(120)
答案 1 :(得分:0)
现在有一种方法可以让币安服务器在价格变化时通知您。
您唯一的解决方案是实施可以监听任何更改的作业。
例如这样的
last_price = None
try:
price_file = 'price.txt'
f = open(price_file, "r")
last_price = f.read()
except Exception as e:
# failed to read last price
pass
price_file = 'price.txt'
def get_last_price():
last_price = None
try:
f = open(price_file, "r")
last_price = f.read()
except Exception as e:
# failed to read last price
pass
return last_price
def update_price(new_price):
f = open(price_file, "w")
f.write(new_price)
f.close()
def get_biance_price():
url = requests.get('https://api.binance.com/api/v1/ticker/price?symbol=BTCUSDT')
data = url.json()
return data['price']
last_price = get_last_price()
new_price = get_biance_price()
if last_price != new_price:
print('price changed!') # implement notification
update_price(new_price)
else:
print('price is the same')
现在调用此脚本会将最新价格保存在“ price.txt”中,并在新价格不同时通知您。现在,您可以将脚本插入到某些Linux cron作业中,并将其配置为以一定间隔调用脚本