pandas的read_csv加载Google Drive CSV链接时报ParserError是什么原因
问题原因与解决方法
首先明确:该报错不是pandas版本更新导致,核心原因是Google Drive公共文件访问策略调整,原拼接uc?id=的方式现在会优先返回带下载确认提示的HTML页面,而非CSV原始内容,pandas将HTML内容作为CSV解析时字段匹配失败,触发报错。
可行解决方案
- 方案1:调整下载链接参数(适用于谷歌判定无风险的小体积公共文件)
在拼接的下载链接后追加&export=download参数强制触发文件下载,修改后代码如下:
import pandas as pd url='https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing' file_id = url.split('/')[-2] url2 = f'https://drive.google.com/uc?id={file_id}&export=download' df = pd.read_csv(url2)
- 方案2:使用
gdown库适配谷歌云盘下载逻辑(兼容性更高,支持大文件)
该库专门适配Google Drive的下载规则,可绕过中间的确认页面直接拉取文件内容,操作步骤如下:
- 安装依赖:
pip install gdown - 参考代码:
import pandas as pd import gdown import io url='https://drive.google.com/file/d/0B6GhBwm5vaB2ekdlZW5WZnppb28/view?usp=sharing' file_id = url.split('/')[-2] # 将文件下载到内存中 file_content = io.BytesIO() gdown.download(id=file_id, output=file_content, quiet=False) # 重置文件指针到开头后读取CSV file_content.seek(0) df = pd.read_csv(file_content)
内容的提问来源于stack exchange,提问作者patwater
相关产品推荐
相关产品推荐

