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

使用Pandas读取Google Sheets时遭遇HTTP 400错误求助

解决Pandas读取Google Sheets的HTTP 400错误

核心原因

HTTP 400错误通常由两个问题导致:

  • Google Sheets未设置公开可查看权限,外部无法通过URL访问数据
  • 导出URL参数不完整或格式错误

解决方案

1. 先设置表格共享权限

打开目标Google Sheets:

  • 点击右上角「共享」按钮
  • 选择「具有链接的任何人」选项,将权限级别设为「查看者」
  • 保存设置

2. 修正CSV导出URL(公开表格适用)

使用以下两种正确格式之一:

格式一:导出默认工作表

import pandas as pd

sheet_id = '1xkKegpIEZXDH1d2Os-6Kr7v4t46n5y7PQp3jDLskBVA'
df = pd.read_csv(f"https://docs.google.com/spreadsheets/d/{sheet_id}/gviz/tq?tqx=out:csv")

print(df)

格式二:指定特定工作表(需获取gid)

  1. 打开目标工作表,查看浏览器URL中的gid参数(例如#gid=0)
  2. 替换代码中的gid值:
import pandas as pd

sheet_id = '1xkKegpIEZXDH1d2Os-6Kr7v4t46n5y7PQp3jDLskBVA'
gid = '0'  # 替换为你的工作表gid
df = pd.read_csv(f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={gid}")

print(df)

3. 私有表格解决方案(更可靠)

如果表格需要保持私有,使用gspread库配合Pandas:

步骤1:安装依赖

pip install gspread oauth2client

步骤2:配置Google服务账号

  • 前往Google Cloud Console创建服务账号,下载JSON密钥文件
  • 在Google Sheets中,将服务账号邮箱添加为表格查看者

步骤3:代码实现

import pandas as pd
import gspread
from oauth2client.service_account import ServiceAccountCredentials

# 设置认证范围
scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']

# 加载服务账号密钥
creds = ServiceAccountCredentials.from_json_keyfile_name('your-service-account-key.json', scope)
client = gspread.authorize(creds)

# 打开表格并读取数据
sheet = client.open_by_key('1xkKegpIEZXDH1d2Os-6Kr7v4t46n5y7PQp3jDLskBVA')
worksheet = sheet.get_worksheet(0)  # 获取第一个工作表
data = worksheet.get_all_records()

# 转换为DataFrame
df = pd.DataFrame(data)
print(df)

内容的提问来源于stack exchange,提问作者Nguyễn Phúc Khang

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:18:25