Python 學習筆記- gspread讀取Google Sheets

Python 要讀權Google Sheets要先開啟Google雲端硬碟(Google Drive)和Google SheetsAPI。

相關參考步驟:

Python 學習筆記- 開啟Google雲端硬碟和Google Sheets的API功能

完成上面的步驟後,接下來的步驟如下:

1. 找出前文開啟Google雲端硬碟時下載的金鑰JSON檔案。

以Windows內建的記事本開啟,找到client_email這行,將塗掉的那串複製起來備用。

2. 設定Google Sheets共用

先到Google雲端硬碟選擇檔案,按右鍵點選共用

把上面client_email中複製的內容貼到與他人共用中,點選傳送
你確定嗎?點選是
3. 開啟Google Sheets檔案,查看內容
把網址中d/至/edit中的文字複製下來,到時候程式會用到
3. 開始寫程式了
auth_json_path這裏就是放你的json檔
spreadsheet_key_path這裏就是放上面d/至/edit中的文字
import pandas as pd
import gspread
from oauth2client.service_account import ServiceAccountCredentials 

def auth_gss_client(path, scopes):
    credentials = ServiceAccountCredentials.from_json_keyfile_name(path, scopes)
    return gspread.authorize(credentials)


auth_json_path = 'auth_mykey.json' #由剛剛建立出的憑證,放置相同目錄以供引入
gss_scopes = ['https://spreadsheets.google.com/feeds'] #我們想要取用的範圍
gss_client = auth_gss_client(auth_json_path, gss_scopes) #呼叫我們的函式

#從剛剛建立的sheet,把網址中 https://docs.google.com/spreadsheets/d/〔key〕/edit 的 〔key〕的值代入 
spreadsheet_key_path = '1J87UIVms_5xYhDX_r1234podusj_ZP9807G0bM'

#我們透過open_by_key這個method來開啟sheet
sheet = gss_client.open_by_key(spreadsheet_key_path).sheet1
df = pd.DataFrame(sheet.get_all_records())

df
Out[1]:
學校代碼 學校名稱 日間∕進修別 等級別 一年級男生 一年級女生 二年級男生 二年級女生 三年級男生 三年級女生 五年級男生 五年級女生 六年級男生 六年級女生 七年級男生 七年級女生 延修生男生 延修生女生 縣市名稱 體系別
0 1 國立政治大學 D 日 D 博士 96 85 82 78 93 59 71 52 58 46 74 40 0 0 30 臺北市 1 一般
1 1 國立政治大學 D 日 M 碩士 624 742 632 695 348 431 0 0 0 0 0 0 0 0 30 臺北市 1 一般
2 1 國立政治大學 D 日 B 學士 899 1287 890 1332 878 1325 0 0 0 0 0 0 326 463 30 臺北市 1 一般
3 1 國立政治大學 N 職 M 碩士 303 248 253 259 201 210 53 47 0 0 0 0 0 0 30 臺北市 1 一般
4 2 國立清華大學 D 日 D 博士 225 99 201 71 189 73 158 50 112 43 168 58 0 0 18 新竹市 1 一般
807 1293 崇仁醫護管理專科學校 D 日 5 五專 89 550 89 610 81 620 70 560 0 0 0 0 15 53 10 嘉義縣 2 技職
808 3002 臺北市立大學 D 日 D 博士 14 20 16 14 17 18 13 22 9 12 22 38 0 0 30 臺北市 1 一般
809 3002 臺北市立大學 D 日 M 碩士 124 252 112 228 82 134 10 39 12 34 0 0 0 0 30 臺北市 1 一般
810 3002 臺北市立大學 D 日 B 學士 566 725 524 682 583 692 0 0 0 0 0 0 165 139 30 臺北市 1 一般
811 3002 臺北市立大學 N 職 M 碩士 98 271 87 237 44 119 19 23 14 28 0 0 0 0 30 臺北市 1 一般
812 rows × 22 columns

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *