如何使用 csv 中的 Pydrive 从 Google Sheet 下载特定的 sheet

How to download a specific sheet from Google Sheet with Pydrive in csv

如果我需要使用 Python 和 pydrive 下载特定的 google sheet 我可以使用像这样的简单命令:

drive.CreateFile({'id':'[sheetID]}).GetContentFile('file.csv', mimetype='text/csv')

这有效,但是,在这种情况下,我仅以 CSV 格式下载 Google 文件的 first sheet。

如果此文件中有 多个 sheets 并且我需要下载特定的 sheet,也许通过我可以在中看到的 ID URL“...edit#gid=111115555”,如何更改命令?

我想下载一个sheet,不管这个位置或名称。

你能帮帮我吗?

提前致谢

我相信你的目标如下。

  • 您想下载 Google Spreadsheet 中的特定 sheet 作为 CSV 数据。
  • 您想通过 python.
  • 使用 pydrive 来实现您的目标

很遗憾,我在pydrive中找不到直接实现你的目标的方法。因此,在这个答案中,我想提出一个解决方法来实现您的目标。在此解决方法中,访问令牌是从 pydrive 的授权脚本中检索的,并使用访问令牌直接请求端点。示例脚本如下

示例脚本:

from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
import requests

# Script for authorization of pydrive.
gauth = GoogleAuth()
gauth.LocalWebserverAuth()

# Download the specific sheet in Google Spreadsheet as a CSV data.
spreadsheetId = '###' # Please set the Spreadsheet ID.
sheetId = '###' # Please set the sheet ID. (GID)
url = 'https://docs.google.com/spreadsheets/d/' + spreadsheetId + '/gviz/tq?tqx=out:csv&gid=' + sheetId
headers = {'Authorization': 'Bearer ' + gauth.credentials.access_token}
res = requests.get(url, headers=headers)
with open('file.csv', 'wb') as f:
    f.write(res.content)
  • 当上面的脚本是运行时,spreadsheetId的Spreadsheet中sheetId的特定sheet被下载为CSV数据并创建它作为文件。