使用Python从Redshift到谷歌电子表格

230 阅读3分钟

使用Python从Redshift到Google Spreadsheet

读取、写入和格式化电子表格的精简工作流程

最近我试图从亚马逊Redshift数据库中提取数据,并使用Python脚本将其推送到谷歌电子表格中。脚本的目的是从亚马逊Redshift数据库中读取数据,应用一些业务规则,并将其写入谷歌电子表格中。

我已经在我的Python脚本中使用了这个 gspread 库,这只是谷歌数据表的python API。使用它,我们可以非常容易地读、写和格式化电子表格。

要与谷歌API互动,第一步是在谷歌开发控制台创建一个项目,并启用API。

  1. 创建一个项目(点击这里) 。

2.给予一个项目名称。

3.进入项目仪表板,点击+ENABLE APIS AND SERVICES 。

4.4. 搜索Google Drive API,点击它并启用。做同样的过程来启用谷歌电子表格API。

5.点击创建凭证。

6.选择参数并点击我需要什么证书?

7.输入服务账户名称并选择角色 。

8.现在点击KEYS,创建一个json格式的新密钥。

一个JSON文件将被下载。我们的脚本中需要这个JSON文件。所以把这个文件重命名为 client_secretkey.json.

现在去你的Google Drive,创建一个Google工作表,并将其命名为redshift-to-Google-Sheet。复制 client_email从你上面下载的JSON文件中的值,并将该Google Sheet分享到这个 client_email具有编辑权限。

在这一点上,我们已经设置好了一切,现在让我们来写我们的Python脚本。为了使用Python脚本与电子表格进行交互,我们必须安装gspread Python库。因此,打开终端,运行以下命令。 oauth2client是一个Python库,用于访问受OAuth 2.0保护的资源。

pip install gspread

现在创建一个Python文件,命名为redshift_to_spradsheet**.**py。复制并粘贴以下代码。

import gspread
scope = ["https://spreadsheets.google.com/feeds", "https://www.googleapis.com/auth/spreadsheets",
credentials = ServiceAccountCredentials.from_json_keyfile_name('client_secretkey.json', scope)

现在让我们添加代码来连接到redshift数据库。我使用了sqlalchemy 库,它可以促进Python程序和数据库之间的通信。

要安装sqlalchemy,请输入以下代码。

pip install sqlalchemy

现在把sqlalchemy导入你的Python脚本,并使用create_engine建立数据库连接。在连接字符串之后,写选择查询(或任何其他DML)来获取数据并将其存储到pandas数据框中。

from sqlalchemy 
# Connecting to postgresql

为了将这个数据框架写入谷歌电子表格,我们必须安装df2gspread python库。要安装df2gspread,请输入以下内容。

pip install df2gspread

现在将df2gspread导入你的python脚本,并创建一个名为write_googlesheet的函数,如下所示。

from df2gspread import df2gspread as d2g
def write_googlesheet(df, spreadsheet_key, sheet_title, starting_cell, overwrite):

这个d2g.upload函数将上传给定的Pandas DataFrame到Google Drive并返回gspread工作表对象。在这里,我从电子表格的URL中传递了电子表格的关键字,电子表格的标题是电子表格的名称(如:Sheet1, Sheet2)。想了解更多关于该函数参数的知识,请点击这里

github链接:redshift_spreadsheet.py

medium.com/media/a5846…

现在运行Python脚本,并在浏览器中打开**redshift-to-Google-**Sheet Google Sheet。你会看到你的Google Sheet已经更新了内容。

总结

这篇文章的目的是让人们了解这种类型的实现。可以有很多不同的策略,但我觉得对于天真的开发者来说,它不太复杂,也很容易理解。


From Redshift to Google spread sheet using Python最初发表于Towards Data Scienceon Medium,人们在这里通过强调和回应这个故事来继续对话。