gpt4 book ai didi

python - Gspread - 无法检索电子表格

转载 作者:太空宇宙 更新时间:2023-11-03 16:12:48 30 4
gpt4 key购买 nike

我正在尝试使用Python2.7中的Gspread来检索电子表格。我似乎能够登录,但每当我发出命令时

gc.openall()

它只返回一个空列表。我已授予服务帐户管理员对所有内容的访问权限,并且在我的谷歌控制台中启用了工作表 API。谁能指出我做错了什么?

下面是 Google 返回并用于登录的我的 name-hash.json 文件:

{
"type": "service_account",
"project_id": "name-id",
"private_key_id": "PRIVATE KEY ID",
"private_key": "-----BEGIN PRIVATE KEY-----
...
\n-----END PRIVATE KEY-----\n",
"client_email": "test@mname-id.iam.gserviceaccount.com",
"client_id": "CLIENTID",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://accounts.google.com/o/oauth2/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/test-279%40name-id.iam.gserviceaccount.com"
}

我的代码如下:

import gspread
from oauth2client.service_account import ServiceAccountCredentials

def login(json_key):
scope = ['https://spreadsheets.google.com/feeds']
credentials = ServiceAccountCredentials.from_json_keyfile_name(json_key, scope)
gc = gspread.authorize(credentials)
return gc

gc = login('/Users/username/Downloads/name-hash.json')
files = gc.openall()
print(files)
[]

最佳答案

我可以想到主要有两个问题可能在这里发挥作用。第一个 gspread 只能访问位于 google 驱动器根目录的 google 工作表。为了避免这种情况,我强烈建议使用 v4 google api python 客户端而不是 gspread。

如果您的根目录中确实有 Google 表格,我的猜测是您缺少与以下地址共享电子表格本身:test@mname-id.iam.gserviceaccount.com

为了验证这一点,我建议将 openall 替换为 open_by_key 并提供单个特定的 google 工作表 ID 来帮助调试。

关于python - Gspread - 无法检索电子表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39127224/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com