2016-08-24 5 views
1

스프레드 시트를 검색하기 위해 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) 
    [] 
+1

시트가 Google 드라이브의 루트에 있습니까? 그것은 gspread가 작동해야합니다. 우리는 최신 v4 google api를 직접 사용하기 위해 코드를 사용하여 gspread를 다시 작성했습니다. 나는 그것을 강력히 추천한다. 그것은 꽤 가파른 학습 곡선을 가지고 있지만 그만한 가치가 있습니다! – Sebastien

+0

내 생각에 스프레드 시트 자체를 주소와 공유하지 못했습니다. [email protected] 특정 스프레드 시트로 open_by_key를 시도하면 오류 메시지가 표시됩니다. – Sebastien

답변

1
나는 주로이 문제를 생각할 수

. 첫 번째 gspread는 Google 드라이브의 루트에있는 Google 시트에만 액세스 할 수 있습니다. 이를 피하기 위해 gspread 대신 v4 google api python 클라이언트로 이동하는 것이 좋습니다.

을 확인하기 위해, 내가 제안 [email protected] : 루트에서 구글 시트이있는 경우

내 생각 엔 당신이 주소를 사용하여 스프레드 시트 자체를 공유 누락 것입니다 openall을 open_by_key로 대체하고 디버깅을 돕기 위해 하나의 특정 Google 시트 ID를 제공합니다.

+0

문제는 [email protected]으로 시트를 공유해야한다는 것이 었습니다. 감사! – user2694306

+0

내 기쁨 :) 나는 오래 전에 그 죽음에 그 도서관 싸웠다 확실히 고통과 관련이있다 :) – Sebastien