几个月前,我遇到了一个熟悉的问题。我正在开发一个项目,需要管理需要频繁更新和协作的大型数据集。起初,我将所有内容都保存在 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中文网其他相关文章!