幾個月前,我遇到了一個熟悉的問題。我正在開發一個項目,需要管理需要頻繁更新和協作的大型資料集。起初,我將所有內容都儲存在 Excel 中,並認為這很簡單。但我加入的資料越多,Excel 的速度就越慢。我會保存我的工作,嘗試更新一些單元格,然後觀察需要幾分鐘才能做出回應。這是一場惡夢。每次我嘗試與團隊成員合作時,我都必須發送文件的新版本,這很快就會變得混亂並且容易出錯。我意識到我需要一種即時更新和共享資料的方法,而 Excel 無法有效處理大型資料集。
就在那時,我發現了 Google Sheets 與 Python 結合的強大功能。 Google Sheets 提供了雲端儲存的靈活性,允許多個使用者同時存取和更新數據,而 Python 提供了強大的資料操作功能。使用 Google Sheets API,我能夠將 Python 與 Google Sheets 無縫集成,創建一個自動更新資料、管理即時變更並消除版本衝突的系統。這是我如何設定它的指南,其中包含幫助您開始自己的專案的範例。
透過 Python 使用 Google Sheets API
將 Python 連接到 Google Sheets 可以讓您輕鬆地自動執行任務、取得資料和更新工作表。 Google Sheets API 支援以程式設計方式存取 Google Sheets,為資料管理提供無限可能。
首先,您需要在 Google Cloud Console 中建立一個專案:
前往 Google Cloud Console 並建立一個新專案。
為此專案啟用 Google Sheets API 和 Google Drive API,因為您需要這兩個 API 才能獲得完全存取權。
轉到憑證並點擊建立憑證。根據您的要求選擇 OAuth 用戶端 ID 或服務帳戶。對於無需用戶互動的自動化腳本,建議使用服務帳戶。
建立憑證後,下載包含服務帳戶金鑰的 JSON 檔案。確保此文件安全,因為它提供對您的 Google 試算表的存取。
要使用 Google Sheets API,請安裝以下程式庫:
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client spread
google-auth 和 google-api-python-client 對於連接 Google 的 API 至關重要。
gspread 是一個 Python 函式庫,可簡化與 Google Sheets 的互動。
在透過 API 與 Google Sheets 互動之前,您需要正確配置權限,以允許您的服務帳戶或 OAuth 憑證存取特定工作表。
透過服務帳戶電子郵件分享您的 Google 試算表:
如果您使用的是服務帳戶,您會注意到 JSON 檔案包含電子郵件地址(例如 your-service-account@your-project.iam.gserviceaccount.com)。為了讓服務帳戶存取您的 Google 表格,您必須與此電子郵件地址共用表格。
開啟您要使用的 Google 試算表。
點選工作表右上角的共用。
輸入服務帳戶電子郵件地址並將權限設定為編輯者。
點擊“發送”以保存這些更改。
2。確保正確的 API 範圍:
設定 Google Cloud 專案時,請確保包含必要的 API 範圍以允許讀取和寫入 Google 試算表。在您的 Python 程式碼中,使用這些範圍來確保適當的權限:
範圍 = [
"https://www.googleapis.com/auth/spreadsheets", # 用於存取和編輯 Google 試算表
"https://www.googleapis.com/auth/drive" # 用於存取 Google 雲端硬碟
]
這是一個用於驗證並連接到您的 Google 試算表的 Python 腳本:
pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client spread
連線後,您可以在 Google 試算表上執行各種操作。以下是一些有用的例子:
範例 1:從 Google 試算表讀取資料
若要從特定單元格範圍檢索資料:
import gspread from google.oauth2.service_account import Credentials # Define the scope and authenticate using the JSON key file scope = ["https://www.googleapis.com/auth/spreadsheets", "https://www.googleapis.com/auth/drive"] credentials = Credentials.from_service_account_file("path/to/your/credentials.json", scopes=scope) # Authorize the client and open the Google Sheet client = gspread.authorize(credentials) sheet = client.open("Your Google Sheet Name").sheet1 # Access the first sheet Replace "path/to/your/credentials.json" with the path to your JSON file, and "Your Google Sheet Name" with the name of your Google Sheet.
data = sheet.get_all_values() print("All data:", data)
此程式碼會擷取工作表或特定範圍中的所有數據,並將其顯示為清單的清單。
要將資料加入特定單元格:
specific_data = sheet.get("A1:C10") # Adjust the range as needed print("Specific data:", specific_data)
如果需要清除特定範圍內的資料:
# Update a single cell sheet.update("B2", "New Data") # Update a range of cells sheet.update("A1:C1", [["Header1", "Header2", "Header3"]]) # Append a new row at the end of the sheet sheet.append_row(["Row1 Data", "Row2 Data", "Row3 Data"]) These commands allow you to write to individual cells, multiple cells, or append entire rows of data.
如果您想自動更新數據,例如附加每日統計數據:
sheet.batch_clear(["A2:C100"]) # Adjust the range as needed This code clears all values within the specified range, which is useful for cleaning up data before importing new information.
此腳本會附加一個包含當前日期和資料點的新行,使其非常適合追蹤每日變更或自動定期更新。
使用 Python 與 Google Sheets API 互動改變了我處理大型資料集的方式,節省了時間並減少了手動工作中的錯誤。無論您是需要自動更新資料、檢索即時訊息,還是只是讓協作工作更輕鬆,將 Python 連接到 Google Sheets 都將開啟一個充滿無限可能的世界。
透過這些範例,您應該已經準備好開始自動化您自己的工作流程,並擺脫那些會降低您的工作效率的過時方法。
在 Linkedin 上追蹤我
https://www.linkedin.com/in/kevin-meneses-897a28127/
和中
https://medium.com/@kevinmenesesgonzalez/subscribe
訂閱資料脈衝通訊
https://www.linkedin.com/newsletters/datapulse-python-finance-7208914833608478720
加入我的 Patreon 社群 https://patreon.com/user?u=29567141&utm_medium=unknown&utm_source=join_link&utm_campaign=creatorshare_creator&utm_content=copyLink
以上是我如何透過將 Python 連接到 Google Sheets API 來自動化我的工作流程的詳細內容。更多資訊請關注PHP中文網其他相關文章!