2020年1月10日 星期五

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]:
學校代碼學校名稱日間∕進修別等級別一年級男生一年級女生二年級男生二年級女生三年級男生三年級女生...五年級男生五年級女生六年級男生六年級女生七年級男生七年級女生延修生男生延修生女生縣市名稱體系別
01國立政治大學D 日D 博士968582789359...7152584674400030 臺北市1 一般
11國立政治大學D 日M 碩士624742632695348431...0000000030 臺北市1 一般
21國立政治大學D 日B 學士899128789013328781325...00000032646330 臺北市1 一般
31國立政治大學N 職M 碩士303248253259201210...534700000030 臺北市1 一般
42國立清華大學D 日D 博士225992017118973...1585011243168580018 新竹市1 一般
..................................................................
8071293崇仁醫護管理專科學校D 日5 五專895508961081620...705600000155310 嘉義縣2 技職
8083002臺北市立大學D 日D 博士142016141718...132291222380030 臺北市1 一般
8093002臺北市立大學D 日M 碩士12425211222882134...10391234000030 臺北市1 一般
8103002臺北市立大學D 日B 學士566725524682583692...00000016513930 臺北市1 一般
8113002臺北市立大學N 職M 碩士982718723744119...19231428000030 臺北市1 一般
812 rows × 22 columns


沒有留言:

【公告】網站遷移,未來內容將發表於新網站!!

 受限於blogger本身架構與限制,本網站所有內容已遷移至新網站,網址如下: https://kuo.us.to/wordpress/