使用Python获取Bybit现货BTCUSDT的OHLC数据失败求助
解决获取BTCUSDT K线数据的问题
问题排查与修复点:
- 交易对符号错误:你要获取的是BTCUSDT,但代码里写的是
['BTCUSD'],Bybit现货交易对的正确符号是BTCUSDT,且该参数接受字符串而非列表。 - 返回数据结构处理:Bybit的
query_kline接口返回的响应包含result字段,直接用整个响应转DataFrame会导致数据解析错误,需要提取result部分。 - 冗余代码清理:你没有用到WebSocket连接,这部分代码可以删除,避免干扰。
修复后的代码:
from pybit import spot import pandas as pd # 初始化HTTP会话 session = spot.HTTP( endpoint='https://api.bybit.com', api_key='YOUR_API', api_secret='YOUR_SECRET' ) # 获取1小时K线数据(interval=60对应1小时) data = session.query_kline(symbol='BTCUSDT', interval=60) # 提取result字段构建DataFrame df = pd.DataFrame(data['result']) print(df)
额外注意事项:
- 确保你的API密钥和密钥具有现货数据查询权限,没有权限也会导致获取不到数据。
- 如果还是无法获取数据,可以添加异常捕获,查看具体的错误信息:
try: data = session.query_kline(symbol='BTCUSDT', interval=60) df = pd.DataFrame(data['result']) print(df) except Exception as e: print(f"错误信息:{e}")
内容的提问来源于stack exchange,提问作者JECT
相关产品推荐
相关产品推荐

