如何获得新价格?

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 作业中,并将其配置为以间隔调用脚本

【讨论】:

谢谢,但我想做一些使用实时的事情

以上是关于如何获得新价格?的主要内容,如果未能解决你的问题,请参考以下文章

如何以美元获得 SKProduct 本地价格?

如何获得余数并计算红宝石价格?

Laravel如何获得域名价格表的总价

如何使用 web3.js 获得 RSK 的最低 gas 价格?

如何获得动态创建的行的总价格?

将项目价格相加以获得总计