문제 상황
회사에서 google sheet 데이터를 받아온 후 그 데이터로 처리해야하는 일이 있었다.
인풋값으로 구글 시트를 다운 받아 해당 엑셀파일을 하나하나 전달받아서 받아와야한다는 점이 비효율적으로 느껴져서
google sheet 데이터를 바로 받아올 수 있는 방법이 없을리가 있겠어? 하고 찾아보니까
google sheet 링크를 file_path에 전달하면 됐다.
해결
구글 시트에서 파일>공유>웹에 개시 를 통해 링크를 생성할 수 있다.

원하는 옵션으로 지정하면 된다. csv 파일을 가져오는게 빠르기 때문에 나는 csv 파일로 가져왔다.
공유하고싶은 시트도 지정할 수 있다.

게시를 누르면 생성된 url을 복사할 수 있는데 그 url을 pandas의 read_csv의 file_path로 넣어주면 된다.

import pandas as pd
url = 'https://docs.google.com/spreadsheets/d/e/2PACX-1vQ0lUnnKygawEgHeSoMGUfiYPRCRYMKdukgXDAtCGIeJHVWwTxOd50L-btM75m6XBNsMwrRNtftyeO8/pub?gid=0&single=true&output=csv'
df_data = pd.read_csv(url)
결론
간단.
api authorize하는 과정은 꽤 빠른데, 원하는 google sheet를 dataframe으로 읽어오기 까지 5초 정도 걸리는 것 같다.
'python & django & scipy' 카테고리의 다른 글
[django - google drive api] google drive api로 shared drive(공유 드라이브) 접근하기 (0) | 2022.12.28 |
---|---|
[pandas & django] gspread 사용하기 (0) | 2022.12.23 |
[django] DB replica (0) | 2022.09.01 |
[python] @property, __init__ (0) | 2022.08.31 |
[python] self와 cls의 차이 / instance method, static method, class method의 차이 (0) | 2022.08.31 |