-
google sheet 내용 python으로 읽고 쓰기프로그래밍 2023. 4. 27. 19:21728x90반응형
우선 관련 패키지를 설치한다.
pip install oauth2client pip install gspread
그리고 바로 기존 서비스 키 파일을 사용해서 아래 코드를 돌렸다.
from oauth2client.service_account import ServiceAccountCredentials import gspread scope = [ "https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/drive", ] json_key_path = "./파일이름.json" # JSON Key File Path credential = ServiceAccountCredentials.from_json_keyfile_name(json_key_path, scope) gc = gspread.authorize(credential) # URL로 열기 spreadsheet_url = "https://docs.google.com/spreadsheets/시트키/edit?usp=sharing" doc = gc.open_by_url(spreadsheet_url) # Sheet 선택 sheet = doc.worksheet("feedback")
그랬더니 아래와 같은 오류 메세지가 나왔다.
credential = ServiceAccountCredentials.from_json_keyfile_name(json_key_path, scope) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Lib\site-packages\oauth2client\service_account.py", line 221, in from_json_keyfile_name return cls._from_parsed_json_keyfile(client_credentials, scopes, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\Lib\site-packages\oauth2client\service_account.py", line 171, in _from_parsed_json_keyfile raise ValueError('Unexpected credentials type', creds_type, ValueError: ('Unexpected credentials type', None, 'Expected', 'service_account')
검색해서 포스팅에서 참고한대로 google service account를 새로 생성하고
service account key를 다운로드 받아서 돌렸더니 다른 오류가 발생한다.
파일에 접근할 권한이 없다고 한다.
공유하려는 google sheet에 새로 만든 service account의 이메일이 편집자로 공유 설정 되어있어야 하는데
그 단계가 깜빡했다.
포스팅 가이드대로 스프레드시트 권한 업데이트했더니 이제 제대로 된다.
그나저나 예제를 따라하기 위해 service account key 파일을 이용하였는데
google에서는 서비스 어카운트를 만드는 것을 권장하지 않는다고 한다.
우선 작동하는 것은 확인했으니 다른 방식이 있는지도 확인해봐야겠다.
728x90반응형'프로그래밍' 카테고리의 다른 글
JAVA import 방식 차이 - 단일 클래스 vs 와일드카드 (0) 2023.12.10 bigquery에서 특정 그룹의 필드 값을 구분자로 합치기 (0) 2023.06.22 how to get rank of each user in firestore (0) 2023.04.02 자주쓰는 github 명령어 정리 (0) 2023.02.18 워드프레스 라이트세일 wp-signup redirect 이슈 (https://53.**.**.**.xip.io/wp-signup.php?new=mydomain.com) (0) 2019.11.05