如何获得新价格?
Posted
技术标签:
【中文标题】如何获得新价格?【英文标题】:How can I get the new price? 【发布时间】:2019-12-10 01:54:13 【问题描述】:您好,我正在使用 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'])
但我想要一个脚本,允许在价格变化时进行更新。你知道我该怎么做吗?
非常感谢!
【问题讨论】:
究竟更新什么? 我的意思是价格经常变化,例如如果你刷新这个页面:https://api.binance.com/api/v1/ticker/price? symbol=BTCUSDT
你会看到价格变化的价值。而且我想在每次价格变化时打印。
【参考方案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)
【讨论】:
你确定吗?一开始我还想着做一个听众之类的事情? 我不完全确定,因为这取决于 binance.com 在开发工具方面提供的内容,但这是我对 REST API 必须做的假设。 【参考方案2】:现在有办法让币安服务器在价格变化时通知你。
您唯一的解决方案是实现一个可以监听任何更改的作业。
比如这样
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 作业中,并将其配置为以间隔调用脚本
【讨论】:
谢谢,但我想做一些使用实时的事情以上是关于如何获得新价格?的主要内容,如果未能解决你的问题,请参考以下文章