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

使用pandas read_csv读取谷歌云端CSV失败,但本地读取正常

解决直接读取谷歌云盘CSV文件的ParserError问题

问题还原

用pd.read_csv()直接读取谷歌云盘的共享链接时触发解析错误:

b_merge = pd.read_csv(
    "https://drive.google.com/file/d/some_file_id",
    low_memory=False
)

错误信息:

ParserError: Error tokenizing data. C error: Expected 90 fields in line 3, saw 217

但把文件下载到本地后用同样代码能正常读取,试过常规跳过行等方案无效。

核心原因

你用的是谷歌云盘的网页预览链接,不是直接指向CSV文件的下载链接。pandas读取的其实是云盘网页的HTML代码,不是真实的CSV数据,自然会解析失败。

解决方案

1. 替换为正确的直接下载链接

把原链接格式从:
https://drive.google.com/file/d/some_file_id
改成以下两种格式之一:

  • 通用直接下载链接:https://drive.google.com/uc?id=some_file_id
  • 若为谷歌表格导出的CSV:https://drive.google.com/file/d/some_file_id/export?format=csv

修改后的代码示例:

b_merge = pd.read_csv(
    "https://drive.google.com/uc?id=some_file_id",
    low_memory=False
)

2. 确保文件权限设置正确

在谷歌云盘里把文件权限改成「任何人可查看」,否则pandas无法访问到文件内容。

3. 备选方案:先下载内容再读取

如果上述方法仍有问题,可以用requests先获取文件内容,再传入pandas:

import pandas as pd
import requests
from io import StringIO

# 替换成你的文件ID
file_id = "some_file_id"
url = f"https://drive.google.com/uc?id={file_id}"

# 发起请求获取文件内容
resp = requests.get(url)
# 用StringIO包装成可读取的文件对象
csv_content = StringIO(resp.text)

# 读取为DataFrame
b_merge = pd.read_csv(csv_content, low_memory=False)

验证方法

把修改后的链接复制到浏览器打开,若能直接下载CSV文件,说明链接有效;如果跳转到云盘网页,说明链接格式不对。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 21:50:43