You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Binance API获取K线数据导出为CSV文件时报ValueError如何解决

报错原因

你调用pd.read_json()时传入的klines是Binance API返回的嵌套列表类型数据,而read_json()方法仅支持接收JSON字符串、本地JSON文件路径、类文件对象作为入参,不支持直接传入列表,因此触发类型不匹配的报错。

修复方案
  • 直接用pd.DataFrame()构造数据表,同时可以补全Binance K线的固定字段作为表头,方便后续数据处理
  • 写入CSV时替换为你自己的本地存储路径即可

修正后的完整代码如下:

from binance.client import Client
import config
import pandas as pd

client = Client(config.apiKey,config.apiSec)
print("Logged in")

symbol = 'BTCUSDT'
klines = client.get_historical_klines(symbol, Client.KLINE_INTERVAL_1WEEK, "1 Jan, 2017")

# 构造数据表,匹配Binance接口返回的K线字段顺序
df = pd.DataFrame(klines, columns=[
    '开盘时间', '开盘价', '最高价', '最低价', '收盘价', '成交量',
    '收盘时间', '标的成交额', '成交笔数', '主动买入成交量', '主动买入成交额', '预留字段'
])

# 替换为你自己的实际存储路径,例如r'D:\币圈数据\BTC周线2017至今.csv'
df.to_csv(r'你的本地存储路径', index=False, encoding='utf-8-sig')

补充说明:加encoding='utf-8-sig'是为了避免Windows系统下打开CSV出现乱码,加index=False是避免把pandas默认的行序号写入文件。

内容的提问来源于stack exchange,提问作者ananame111

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.13 05:27:03