스프레드 시트를 검색하기 위해 Python2.7에서 Gspread를 사용하려고합니다. 로그인 할 수 있지만 명령을 실행할 때마다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": "[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)
[]
시트가 Google 드라이브의 루트에 있습니까? 그것은 gspread가 작동해야합니다. 우리는 최신 v4 google api를 직접 사용하기 위해 코드를 사용하여 gspread를 다시 작성했습니다. 나는 그것을 강력히 추천한다. 그것은 꽤 가파른 학습 곡선을 가지고 있지만 그만한 가치가 있습니다! – Sebastien
내 생각에 스프레드 시트 자체를 주소와 공유하지 못했습니다. [email protected] 특정 스프레드 시트로 open_by_key를 시도하면 오류 메시지가 표시됩니다. – Sebastien