06 Python 資料庫教學10 所有文章

[資料庫筆記] Python 串接 GoogleSheet 新增、讀取、更新和刪除

python_pygsheet

此次整理了 pygsheets – Google Spreadsheets Python API 的官方文件,了解如何用 Python 串接 Google Sheet 來當作資料庫使用,從 Pygsheets 安裝、Python連結 Google Sheet API、到基礎資料庫的 CRUD 應用,本篇描述 Python 做 GoogleSheet 的新增欄位 Create、讀取資料 Read、更新數據 Update 和刪除Delete,提供大家參考。

本篇大綱如下:

  1. Python 如何串接和安裝 Google Sheet API
  2. 操作 Google Sheet API 的 CRUD 應用
    • 新增資料 Create
    • 讀取資料 Read
    • 更新資料 Update
    • 刪除資料 Delete
  3. 串接 Google Sheet 的其他應用

ㄧ. Python 連結Google Sheet API

Python 連結 GoogleSheet,首先建立 Google Cloud Platform 帳號,啟動 Google Sheet API,並將金鑰json檔儲存於桌面。

GoogleSheet_API
GoogleSheet_API
GoogleSheet_key
GoogleSheet_key

初始設定import這次會使用到的pygsheets外,gc這邊是告訴Python我們的授權金鑰json放置的位子。

import pygsheets
gc = pygsheets.authorize(service_file='/Users/max/Desktop/Google python.json')

二. Python 新增 GoogleSheet 資料

1.利用Python開啟GoogleSheet

sh = gc.open('Python測試用模板')

2.查看此GoogleSheet內Sheet清單

wks_list = sht.worksheets()
print(wks_list)

3.選取要Sheet清單

#選取by順序
wks = sht[0]

#選取by名稱
wks2 = sht.worksheet_by_title("Sheet2")

#更新名稱
wks.title = "NewTitle"

#隱藏清單
wks.hidden = False

4.或是新增GoogleSheet

#新增 
sht = gc.create("Python測試用模板",parent_id="1l-RT4KyPTG2Jt_s9jmMXHqmgo0h7xLTv")

三. Python 讀取 GoogleSheet 資料

Python做GoogleSheet讀取資料的部分,除了匯出成CSV處理外,也可以單獨用cell讀取value或是欄位。

#讀取
A1 = wks.cell('A1')
A1.value
#匯出CSV
wks.export(pygsheets.ExportType.CSV)

四. Python 更新 GoogleSheet 資料

Python做GoogleSheet的修改資料,利用update_cell語法可以修改單獨欄位的值,update_cells可以修改多個欄位。

# Update
wks.update_cell('A1', "Hey yank this numpy array")
wks3.update_cells('A2:A5',[['name1'],['name2'],['name3'],['name4']])

 五. Python 刪除 GoogleSheet 資料

Python做GoogleSheet利用clear可清除所有值,del_worksheet可刪除Sheet。

# 清除sheet內所有值 
wks.clear()
 
# 刪除sheet
sht.del_worksheet(wks) 

 六. Python 串接 GoogleSheet 的其他應用

set_dataframe :可以匯入 Dataframe 資料
share :可以授權權限
remove_permissions: 移除權限語法

#在資料最後面,匯入Dataframe
wks.set_dataframe(df, start = "A"+str(len(wks.get_all_values())+1) ,copy_head=False)

# 授權
sht.share("[email protected]")

# 移除權限
sht.remove_permissions("[email protected]")

延伸閱讀:

那[資料庫筆記] Python 串接 GoogleSheet 新增、讀取、更新和刪除 就到這邊感謝收看,如文章內容有誤請不吝指正!

有關Max行銷誌的最新文章,都會發佈在Max的Facebook粉絲專頁,如果想看最新更新,還請您按讚或是追蹤唷!
Max行銷誌:https://www.facebook.com/maxlist25/

在〈[資料庫筆記] Python 串接 GoogleSheet 新增、讀取、更新和刪除〉中有 6 則留言

  1. 肉身實測,建議在施作添加資料時,加上 fit = True
    #在資料最後面,匯入Dataframe
    wks.set_dataframe(df, start = “A”+str(len(wks.get_all_values())+1) ,copy_head=False,fit = True)

  2. 請問如果print回來中文都是亂碼,如:
    [u’\u4e2d\u6587′, u’\u8a66\u9a57′, u’\u5c0f\u660e’, ”, ”]
    該如何解決?謝謝!

    1. HI, HFX

      以下供您參考
      print(type(u’\u4e2d\u6587′))
      print(u’\u4e2d\u6587′.encode(‘utf-8’).decode(‘utf-8’))

      >>> class ‘str’
      >>> 中文

  3. 您好!
    感謝您旳分享~
    其中,
    #匯出CSV
    wks.export(pygsheets.ExportType.CSV)
    執行後出現errMsg如下:(不知該如何處理?)
    File “C:\Users\TJ\Anaconda3\lib\site-packages\googleapiclient\http.py”, line 740, in next_chunk: [HttpError] {‘vary’: ‘Origin, X-Origin’, ‘content-type’: ‘application/json; charset=UTF-8’, ‘date’: ‘Sat, 11 Apr 2020 04:14:08 GMT’, ‘expires’: ‘Sat, 11 Apr 2020 04:14:08 GMT’, ‘cache-control’: ‘private, max-age=0’, ‘x-content-type-options’: ‘nosniff’, ‘x-frame-options’: ‘SAMEORIGIN’, ‘content-security-policy’: “frame-ancestors ‘self'”, ‘x-xss-protection’: ‘1; mode=block’, ‘content-length’: ‘957’, ‘server’: ‘GSE’, ‘alt-svc’: ‘quic=”:443″; ma=2592000; v=”46,43″,h3-Q050=”:443″; ma=2592000,h3-Q049=”:443″; ma=2592000,h3-Q048=”:443″; ma=2592000,h3-Q046=”:443″; ma=2592000,h3-Q043=”:443″; ma=2592000,h3-T050=”:443″; ma=2592000’, ‘status’: ‘403’}

    1. HI Peter,

      從您提供的資訊中 ‘status’: ‘403’,看起來是對 google sheet 讀取權限不夠,以上是我的猜測,

      方便私訊提供更完整的代碼嗎?

發佈留言

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