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

Streamlit连接Google Sheets时出现Incorrect padding错误求助

解决Streamlit连接Google Sheets时的binascii.Error: Incorrect padding错误

这个错误的核心原因是GCP服务账号密钥在Streamlit Secrets中的格式不正确,导致base64解码失败,以下是针对性的解决步骤:

1. 修正Streamlit Secrets中private_key的格式

服务账号JSON里的private_key字段包含带换行的PEM格式密钥,在.streamlit/secrets.toml中必须正确转义换行符:

  • 打开下载的GCP服务账号JSON文件,复制完整的private_key内容(包括-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----)
  • 在secrets.toml中,将private_key的换行替换为\n,示例:
[gcp_service_account]
private_key = "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC...\n...\n-----END PRIVATE KEY-----"
# 其他字段(project_id、client_email等)按JSON内容如实填写

注意:不要手动修改private_key的内容,只替换换行符为\n

2. 验证服务账号JSON的完整性

  • 重新从GCP控制台下载服务账号JSON文件,确保文件未被编辑、截断或损坏
  • 检查JSON中的private_key字段是否完整,没有缺失字符或格式错误

3. 升级依赖包

旧版本的google-auth或pyasn1-modules可能存在解码兼容问题,执行以下命令升级:

pip install --upgrade google-auth pyasn1-modules streamlit

4. 应急修复:补全base64填充符(仅当上述方法无效时)

如果private_key的base64部分长度不是4的倍数,会导致padding错误:

  • 计算private_key中-----BEGIN PRIVATE KEY-----和-----END PRIVATE KEY-----之间的字符串长度
  • 如果长度不是4的倍数,在末尾添加=直到长度为4的倍数(比如长度是1001,就加3个=)

内容的提问来源于stack exchange,提问作者Sina Kian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:45:34