Python读取谷歌云端硬盘Excel文件遇401错误,求解决方法
解决谷歌云端Excel文件读取401未授权问题
报错信息翻译:
urllib.error.HTTPError: HTTP Error 401: 未授权
问题根源
- URL替换逻辑错误:原URL的参数是
?usp=sharing,但代码里试图替换/edit?usp=share_link,导致替换失败,生成的导出URL无效 - 谷歌表格权限未开放:即使URL正确,若表格未设置为公开可查看,会被谷歌拒绝访问
解决步骤
修正URL构造逻辑
两种可行的构造方式:- 方式一:修正替换规则,匹配原URL的后缀
import pandas as pd url = "https://docs.google.com/spreadsheets/d/1j5nNupNht5CJMCUTyBsmx0bU_1UMeBjQ02dY_eUNqrU/edit?usp=sharing" # 替换正确的编辑后缀为导出后缀 url_for_pandas = url.replace("/edit?usp=sharing", "/export?format=xlsx") df = pd.read_excel(url_for_pandas) print(df) - 方式二:直接提取Sheet ID构造导出URL(更可靠)
import pandas as pd # 从原URL中提取的Sheet ID sheet_id = "1j5nNupNht5CJMCUTyBsmx0bU_1UMeBjQ02dY_eUNqrU" # 构造标准的导出URL url_for_pandas = f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=xlsx" df = pd.read_excel(url_for_pandas) print(df)
- 方式一:修正替换规则,匹配原URL的后缀
开放谷歌表格权限
- 打开目标谷歌表格,点击右上角「共享」按钮
- 点击「限制访问」旁边的下拉箭头,选择「任何知道链接的人」
- 将权限级别设置为「查看者」,保存设置后再运行代码
内容的提问来源于stack exchange,提问作者Muhammad Fahim Aamir
相关产品推荐
相关产品推荐

