我如何通过将 Python 连接到 Google Sheets API 来自动化我的工作流程

DDD
发布: 2024-11-17 19:09:02
原创
169 人浏览过

How I Automated My Workflow by Connecting Python to Google Sheets API

介绍

几个月前,我遇到了一个熟悉的问题。我正在开发一个项目,需要管理需要频繁更新和协作的大型数据集。起初,我将所有内容都保存在 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,为数据管理提供无限可能。

使用 Python 设置 Google Sheets API 的分步指南

1. 设置您的 Google Cloud 项目

首先,您需要在 Google Cloud Console 中创建一个项目:

转到 Google Cloud Console 并创建一个新项目。
为此项目启用 Google Sheets API 和 Google Drive API,因为您需要这两个 API 才能获得完全访问权限。
转到凭据并单击创建凭据。根据您的要求选择 OAuth 客户端 ID 或服务帐户。对于无需用户交互的自动化脚本,建议使用服务帐户。
创建凭据后,下载包含服务帐户密钥的 JSON 文件。确保此文件安全,因为它提供对您的 Google 表格的访问。

2. 在Python中安装所需的库

要使用 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 的交互。

3. 获取访问Google表格的权限

在通过 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 云端硬盘
]

4. 验证并连接到您的 Google 表格

这是一个用于验证并连接到您的 Google 表格的 Python 脚本:

pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2 google-api-python-client spread
登录后复制
登录后复制

Google Sheets API 功能示例

连接后,您可以在 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)
登录后复制

此代码检索工作表或特定范围中的所有数据,并将其显示为列表的列表。

示例 2:将数据写入 Google 表格

要将数据添加到特定单元格:

specific_data = sheet.get("A1:C10")  # Adjust the range as needed
print("Specific data:", specific_data)
登录后复制

示例 3:清除 Google 表格中的数据

如果需要清除特定范围内的数据:

清除特定范围内的数据

# 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.
登录后复制

示例 4:自动更新数据

如果您想自动更新数据,例如附加每日统计数据:

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中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板