파이썬 Python

[Python] 파이썬 - 구글 스프레드 시트 연동하기

sseozytank 2024. 3. 18.

파이썬으로 구글 스프레드 시트를 땡겨오면 파이썬을 통해 데이터 불러오기 뿐만 아니라 파이썬에서 구글 스프레드 시트로 데이터를 넣거나 삭제할 수도 있어서 굉장히 편하다. 처음 설정만 해두면 방법도 쉬운 편이기 때문에 한번 같이 연동해보도록 하자.

 

1.구글 클라우드  프로젝트 및 서비스 계정 생성

1. 서비스 이용 동의

일단 아래 구글 클라우드 플랫폼 링크를 클릭해서, 서비스 약관을 동의 체크 해준다. 

https://console.cloud.google.com/apis/dashboard

 

Google 클라우드 플랫폼

로그인 Google 클라우드 플랫폼으로 이동

accounts.google.com

 

2. 프로젝트 만들기 

API 및 서비스 ( 동의 및 계속하기를 누르면 자동으로 이 창에 머무르게 됨) > 사용자 인증 정보 클릭 > 프로젝트 만들기 

 

이 후, 프로젝트 이름을 설정해준 뒤 만들기 버튼을 눌러준다. 

 

3. 서비스 계정 만들기 

프로젝트를 생성했다면 아래 경로로 들어가 서비스 계정을 생성해주자.

 

값을 입력하고 만들고 계속하기를 누르며 역할 부여, 액세스 권한 부여를 하면 된다. 이건 본인 상황에 맞게 해주면 되며 나는 테스트라 2번은 Baisc 편집자 권한으로 , 3번은 설정하지 않았다. 

 

이후 아래 창이 뜨면, 이메일 주소 부분을 클릭해주자. 

 

 

4. 키 파일 다운로드  

이메일을 클릭하고 뜬 창에서 키 버튼을 눌러준다.

 

그리고 새 키 만들기 클릭, JSON 으로 키파일은 만들어 준다. 그럼 아래와 같이 다운로드가 된 것을 확인할 수 있다. 

 

 

이 파일이 다른 사람에게 가게 되면, 관련 문서 조회가 전부 가능하다. 보안과 직결되어있으니 관리에 꼭 주의를 기울일 것 ! 아무튼 이제 키 파일이 생성되었다. 그럼 본격적으로  키파일과 구글 스프레드 시트를 활용해서 파이썬에서 구글 스프레드 시트를 불러와보자 .

 

5. API 권한 설정   

 

 

 

마지막으로 API를 설정해주고, 사용자 인증 정보에 이메일을 복사해 준다!  

 

 

 

2.파이썬으로 구글 스프레드 시트 가져오기 

1. 구글 스프레드 시트 권한 공유 

파이썬으로 내보내기 위해서는 문서를 API에 권한을 주는 것이 필요하다. 이에 바로 위에서 복사해 놧던 API 서비스 계정 키값을 공유 버튼을 클릭 후, 이메일을 붙혀넣기 한 후 전송 버튼을 눌러준다. 그럼 이 API에 대해 해당 시트에 대한 권한이 업데이트 된 것이다.

땡겨올 데이터

 

2. 파이썬에서 시트 가져오기 

pip install oauth2client
pip install gspread
import pandas as pd
from oauth2client.service_account import ServiceAccountCredentials
import gspread

scope = ['https://spreadsheets.google.com/feeds',
'https://www.googleapis.com/auth/drive']

#개인에 따라 수정 필요 - 다운로드 받았던 키 값 경로 
json_key_path = "key.json"	

credential = ServiceAccountCredentials.from_json_keyfile_name(json_key_path, scope)
gc = gspread.authorize(credential)


#개인에 따라 수정 필요 - 스프레드시트 url 가져오기
spreadsheet_url = "url 입력하기"

doc = gc.open_by_url(spreadsheet_url)

#개인에 따라 수정 필요 - 시트 선택하기 (시트명을 그대로 입력해주면 된다.)
sheet = doc.worksheet("시트1")

#데이터 프레임 생성하기
df = pd.DataFrame(sheet.get_all_values())

#불러온 데이터 프레임 정리
df.rename(columns=df.iloc[0], inplace = True)
df.drop(df.index[0], inplace=True)

df.head()

 

위 절차대로 따라왔다면, 개인에 따라 수정 필요 라고 적힌 부분만 본인의 값으로 바꿔주기만 하면 된다. 이렇게 구글 스프레드 시트를 파이썬으로 가져오는 것은 끝!  아래와 같이 데이터가 잘 떙겨와 진 것을 확인 할 수 있다! 

댓글