使用Python gspread连接Google Sheets报JSONDecodeError错误求解决方案
报错解决步骤
JSONDecodeError: Expecting value 是json库读取credentials.json文件解析失败触发的错误,按以下顺序排查即可解决:
- 修正文件路径:你当前代码使用的相对路径依赖脚本运行的工作目录,若运行时工作目录不是桌面会找不到文件,导致读取空内容报错。先替换为绝对路径测试,Windows环境下写法如下:
gc = gspread.service_account(filename = r'C:\Users\dusti\Desktop\credentials.json') - 校验文件编码:确保credentials.json保存为UTF-8无BOM格式,不要用Windows系统自带记事本默认的编码保存,会引入多余字符导致解析失败。可以用第三方代码编辑器打开文件,右下角确认编码格式,调整后重新保存即可。
- 排查JSON语法错误:手动编辑凭证文件很容易引入多余转义符、缺引号、多余逗号这类语法问题,你可以运行以下简单脚本先校验本地JSON文件是否合法:
import json # 替换为你自己的凭证文件绝对路径 cred_path = r'C:\Users\dusti\Desktop\credentials.json' with open(cred_path, 'r', encoding='utf-8') as f: try: json.load(f) print("凭证文件JSON格式正常") except Exception as e: print(f"JSON格式错误:{e}") - 替换原始凭证文件:如果确认是JSON格式问题,建议直接从Google Cloud后台重新下载一份未经过手动修改的服务账号凭证文件,替换现有文件后,再重新将服务账号邮箱共享给对应Google Sheet即可。
解决上述问题后,你原有代码无需额外修改即可正常读取表格数据。
内容的提问来源于stack exchange,提问作者ah2Bwise
相关产品推荐
相关产品推荐

