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

Python读取Binance Vision的ZIP文件触发BadZipFile错误求助

解决Binance历史数据读取zipfile.BadZipFile错误

问题根源

你当前使用的URL指向的是Binance数据的索引页面(文件列表页),而非实际的ZIP文件。Pandas请求该URL时获取到的是HTML网页内容,而非合法的ZIP二进制数据,因此触发zipfile.BadZipFile错误。

解决方案

1. 修正文件URL

使用直接指向ZIP文件的路径,去掉原URL中的?prefix=参数:

import pandas as pd

# 修正后的基础路径,直接指向文件存储目录
base_url = 'https://data.binance.vision/data/spot/monthly/klines/NULSBTC/1w/'
url = f'{base_url}NULSBTC-1w-2023-02.zip'

# 显式指定compression参数,确保Pandas识别ZIP格式
df = pd.read_csv(url, compression='zip')
print(df)

2. 备选方案:通过requests下载后读取

如果直接读取URL仍有问题,可先获取文件二进制内容再处理:

import pandas as pd
import requests
from io import BytesIO

url = 'https://data.binance.vision/data/spot/monthly/klines/NULSBTC/1w/NULSBTC-1w-2023-02.zip'

# 发送请求并验证响应
response = requests.get(url)
response.raise_for_status()

# 用BytesIO包装二进制数据,直接加载为DataFrame
df = pd.read_csv(BytesIO(response.content), compression='zip')
print(df)

3. 额外排查点

  • 访问修正后的URL,确认是否直接触发ZIP文件下载(而非显示文件列表)。
  • 检查网络环境,部分网络可能限制直接请求二进制文件,可尝试切换网络测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:52:37