我想在Python2.7中使用Gspread來檢索電子表格。我似乎能夠登錄,但每當我發出命令Gspread - 無法檢索電子表格
gc.openall()
它只是返回一個空的列表。我已經給服務帳戶管理員訪問了所有內容,並且在我的Google控制檯中啓用了工作表API。任何人都可以指出我做錯了什麼?
下面是我的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": "[email protected]",
"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,直接使用最新的v4 google api。我強烈推薦它。它有一個相當陡峭的學習曲線,但非常值得! – Sebastien
我的猜測是,你錯過了分享電子表格本身的地址:[email protected] 如果你嘗試open_by_key與一個特定的電子表格,你會得到一個錯誤消息,如果是這種情況 – Sebastien