:2026-04-07 23:54 点击:1
Python获取比特币行情接口:实用指南与代码示例**
在数字货币蓬勃发展的今天,实时获取比特币等加密货币的行情数据对于投资者、开发者和研究人员来说至关重要,Python凭借其简洁的语法、强大的库支持以及活跃的社区,成为了处理金融数据和开发相关应用的首选语言之一,本文将详细介绍如何使用Python通过各类接口获取比特币行情数据,并提供实用的代码示例。
比特币行情数据通常包括但不限于:
这些数据是进行技术分析、量化交易、市场趋势预测以及构建加密货币相关应用的基础。
获取比特币行情数据,通常有以下几种途径:
主流加密货币交易所API:
第三方数据服务商API:
Python专用库封装:
python-binance(币安API封装)、ccxt(支持上百个交易所的统一接口库)、requests(通用HTTP库,用于直接调用API)。下面我们以两个常见的场景为例,展示如何使用Python获取比特币行情数据。
CoinGecko提供了免费且易于使用的REST API,无需API Key即可调用大部分数据。
安装requests库(如果尚未安装)
pip install requests
获取比特币当前价格
CoinGecko的simple/price接口可以获取指定币种和字段的价格信息。
import requests
def get_bitcoin_price():
url = "https://api.coingecko.com/api/v3/simple/price"
params = {
'ids': 'bitcoin', # CoinGecko上的比特币ID
'vs_currencies': 'usd', # 对标美元
'include_market_cap': 'true', # 包含市值
'include_24hr_vol': 'true', # 包含24小时成交量
'include_24hr_change': 'true', # 包含24小时涨跌幅
'include_last_updated_at': 'true' # 包含最后更新时间
}
try:
response = requests.get(url, params=params)
response.raise_for_status() # 如果请求失败则抛出异常
data = response.json()
bitcoin_data = data.get('bitcoin', {})
print(f"比特币 (BTC) 当前行情:")
print(f"价格 (USD): ${bitcoin_data.get('usd', 'N/A')}")
print(f"市值: ${bitcoin_data.get('usd_market_cap', 'N/A'):,.2f}")
print(f"24小时成交量: ${bitcoin_data.get('usd_24h_vol', 'N/A'):,.2f}")
print(f"24小时涨跌幅: {bitcoin_data.get('usd_24h_change', 'N/A')}%")
print(f"最后更新时间: {bitcoin_data.get('last_updated_at', 'N/A')}")
except requests.exceptions.RequestException as e:
print(f"获取数据失败: {e}")
if __name__ == "__main__":
get_bitcoin_price()
获取比特币历史K线数据
CoinGecko的coins/{id}/market_chart接口可以获取指定时间范围和间隔的历史K线数据。
import requests
import datetime
def get_bitcoin_historical_data():
url = "https://api.coingecko.com/api/v3/coins/bitcoin/market_chart"
# 获取过去30天的数据,间隔为1天
params = {
'vs_currency': 'usd',
'days': '30',
'interval': 'daily' # 可以是 'minutely', 'hourly', 'daily'
}
try:
response = requests.get(url, params=params)
response.raise_for_status()
data = response.json()
prices = data.get('prices', [])
print(f"比特币 (BTC) 过去30天每日收盘价 (USD):")
for timestamp, price in prices:
date = datetime.datetime.fromtimestamp(timestamp / 1000).strftime('%Y-%m-%d')
print(f"{date}: ${price:.2f}")
except requests.exceptions.RequestException as e:
print(f"获取历史数据失败: {e}")
if __name__ == "__main__":
get_bitcoin_historical_data()
Binance是全球最大的加密货币交易所之一,其API功能强大且文档完善,使用python-binance库可以简化操作。
安装python-binance库
pip install python-binance
获取比特币当前价格和24小时统计
from binance.client import Client
# api_key = 'YOUR_API_KEY'
# api_secret = 'YOUR_API_SECRET'
# client = Client(api_key, api_secret)
# 如果不需要交易功能,只获取公开数据,可以不传API Key和Secret
client = Client()
def get_binance_btc_ticker():
try:
# 获取BTC/USDT的交易对信息
ticker = client.get_symbol_ticker(symbol="BTCUSDT")
print(f"Binance BTC/USDT 当前价格: {ticker['price']} USDT")
# 获取24小时价格变动统计
ticker_24hr = client.get_ticker(symbol="BTCUSDT")
print(f"24小时最高价: {ticker_24hr['highPrice']} USDT")
print(f"24小时最低价: {ticker_24hr['lowPrice']} USDT")
print(f"24小时成交量: {float(ticker_24hr['volume']):.2f} BTC&q
uot;)
print(f"24小时成交额(USDT): {float(ticker_24hr['quoteVolume']):,.2f}")
print(f"24小时涨跌幅: {float(ticker_24hr['priceChangePercent']):.2f}%")
except Exception as e:
print(f"获取Binance数据失败: {e}")
if __name__ == "__main__":
get_binance_btc_ticker()
获取比特币K线数据(Klines/Candlesticks)
from binance.client import Client
import pandas as pd
def get_binance_btc_klines():
client = Client()
symbol = "BTCUSDT"
interval = Client.KLINE_INTERVAL_1DAY # 日K线
limit = 30 # 获取最近30天的数据
try:
klines = client.get_klines(symbol=symbol, interval=interval, limit=limit)
# 将数据转换为Pandas DataFrame,方便处理
df = pd.DataFrame(klines, columns=[
'Open time', 'Open', 'High', 'Low', 'Close', 'Volume',
'Close time', 'Quote asset volume', 'Number of trades',
'Taker buy base asset volume', 'Taker buy quote asset volume', 'Ignore'
])
# 转换时间戳和数值类型
df['Open time'] = pd.to_datetime(df['Open time'], unit='ms')
df['Close time'] = pd.to_datetime(df['Close time'], unit='ms')
for col in ['Open', 'High', 'Low', 'Close', 'Volume']:
df[col] = df[col].astype(float)
print(f"Binance BTC/USDT limit}日K线数据:")
print(df
本文由用户投稿上传,若侵权请提供版权资料并联系删除!