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

无需Google Sheets API将谷歌表格导入Pandas的ParserError报错解决

谷歌表格无需API读取的ParserError报错解决方案

你遇到的ParserError: Error tokenizing data. C error: Expected 1 fields in line 6, saw 2报错,核心原因是谷歌表格导出的CSV文件前几行存在合并单元格、备注说明等非结构化内容,导致行列数和pandas默认解析规则不匹配,可通过以下方法解决,全程无需谷歌API身份验证:

  • 方案1:直接跳过异常前置行
    报错提示第6行存在列数异常,说明前5行均为无效内容,可通过skiprows参数直接跳过前N行:
import pandas as pd
googleSheetId = '1231SDFS3afer3SDfsdf-34SDFSDgfdsd42'
worksheetName = 'abcde'

start_url = f"https://docs.google.com/spreadsheets/d/{googleSheetId}/gviz/tq?tqx=out:csv&sheet={worksheetName}"
url = start_url.replace(" ","")
# 跳过前5行,可根据表格实际前置内容行数调整参数值
df = pd.read_csv(url, skiprows=5)
  • 方案2:增加容错参数兼容异常格式
    如果是局部行存在列数异常、分隔符识别错误的问题,可通过容错参数兼容:
df = pd.read_csv(
    url,
    sep=',', # 显式指定逗号为分隔符,避免自动识别错误
    on_bad_lines='skip', # 跳过列数不匹配的异常行,也可设为'warn'仅输出告警
    engine='python' # 替换默认C引擎为Python引擎,容错性更高
)
  • 方案3:先拉取原始内容再手动清洗
    如果上述方案都不符合需求,可先拉取CSV原始内容,手动清洗后再交给pandas解析:
import requests
import pandas as pd
from io import StringIO

googleSheetId = '1231SDFS3afer3SDfsdf-34SDFSDgfdsd42'
worksheetName = 'abcde'
start_url = f"https://docs.google.com/spreadsheets/d/{googleSheetId}/gviz/tq?tqx=out:csv&sheet={worksheetName}"
url = start_url.replace(" ","")

resp = requests.get(url)
resp.encoding = 'utf-8'
# 自行截取有效行,示例为从第6行开始读取
valid_lines = resp.text.splitlines()[5:]
df = pd.read_csv(StringIO('\n'.join(valid_lines)))

注意事项

  • 操作前需确认谷歌表格权限已设置为「所有知道链接的用户可查看」,否则返回的权限校验页面内容也会触发解析报错
  • 若工作表名称包含特殊字符、空格,需要先做URL编码后再拼接到请求链接中

内容的提问来源于stack exchange,提问作者abq.215

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 15:57:00