要实现使用 Python 的 `requests` 库从币安获取 BTC/USDT 现货市场的 15 分钟级别 K 线数据,并获取 1500 条记录的需求,可以参考以下代码。币安交易所提供了公开的 API ,可以获取市场数据,比如 K 线数据(也叫做蜡烛图数据)。
币安的 K 线数据接口 URL 格式为:
```
https://api.binance.com/api/v3/klines?symbol=BTCUSDT&interval=15m&limit=1500
```
以下是一个完整的 Python 脚本,使用 `requests` 库来获取这些数据:
```python
import requests
import json
def get_btcusdt_klines():
# 请求的 URL ,symbol=BTCUSDT 表示获取 BTC/USDT 的数据,interval=15m 表示 15 分钟级别,limit=1500 表示获取 1500 条记录
url = "https://api.binance.com/api/v3/klines"
params = {
"symbol": "BTCUSDT", # BTC 对 USDT 交易对
"interval": "15m", # 15 分钟级别
"limit": 1500 # 获取 1500 条 K 线数据
}
try:
# 发送 GET 请求获取数据
response = requests.get(url, params=params)
response.raise_for_status() # 检查请求是否成功
# 解析 JSON 数据
kline_data = response.json()
# 打印出返回的数据
print(json.dumps(kline_data, indent=4))
return kline_data
except requests.exceptions.HTTPError as http_err:
print(f"HTTP error occurred: {http_err}")
except Exception as err:
print(f"An error occurred: {err}")
# 调用函数获取 K 线数据
get_btcusdt_klines()
```
### 代码解析:
1. **`url`**: 币安的 API 地址,用于获取 K 线数据。
2. **`params`**: 参数字典:
- `symbol`:交易对,这里是 BTC/USDT 。
- `interval`:时间间隔,这里是 15 分钟(`15m`)。
- `limit`:获取的 K 线数量,设置为 1500 条。
3. **`requests.get()`**:发送 GET 请求从 API 获取数据。
4. **`response.raise_for_status()`**:检查请求是否成功,如果失败则抛出异常。
5. **`json()`**: 将返回的响应内容解析为 JSON 数据。
### 返回的数据格式:
每个 K 线的数据包括以下信息:
- 开盘时间
- 开盘价
- 最高价
- 最低价
- 收盘价
- 成交量
- 收盘时间等
执行这个代码将返回 BTC/USDT 的 15 分钟级别 1500 条 K 线数据。 |