python - 使用 gspread 查找电子表格的 file_id

标签 python drive gspread

我正在尝试清理我的 Google 服务帐户中的一些空间。我一直在使用它来处理电子表格,我想删除我之前创建的一些电子表格。要删除电子表格,可以使用 gspread 中的 gc.del_spreadsheet(file_id) 函数。但是,我找不到检索要删除的电子表格的文件 ID 的方法。

我找不到像个人帐户的谷歌驱动器一样打开服务帐户的谷歌驱动器的方法。因此,我使用以下代码列出了到目前为止帐户中的所有电子表格。该代码输出电子表格标题,但不输出删除电子表格所需的文件 ID。

def upload_to_google_sheets():
    scope = ['https://spreadsheets.google.com/feeds',
             'https://www.googleapis.com/auth/drive']
    credentials = ServiceAccountCredentials.from_json_keyfile_name("client.json", scope)
    gc = gspread.authorize(credentials)
    print('authorized')
    titles_list = []
    for spreadsheet in gc.openall():
        titles_list.append(spreadsheet.title)

    pp = pprint.PrettyPrinter(indent=4)
    pp.pprint(titles_list)

upload_to_google_sheets()

最终目标是使用需要“file_id”的 gspread del_spreadsheet 函数删除电子表格。

最佳答案

  • 您想要使用 gspread 检索电子表格标题和电子表格 ID。

如果我的理解是正确的,那么修改一下怎么样?

来自:

titles_list.append(spreadsheet.title)

致:

titles_list.append({'title': spreadsheet.title, 'id': spreadsheet.id})
  • 对象 spreadsheetfor spreadsheet in gc.openall():包括电子表格 ID。
  • 为了检索电子表格 ID,请在您的脚本中使用 spreadsheet.id .

通过此修改,您可以检索到以下结果。

[   {   'id': '### Spreadsheet ID1 ###',
        'title': '### Spreadsheet name1 ###'},
    {   'id': '### Spreadsheet ID2 ###',
        'title': '### Spreadsheet name2 ###'},
,
,
,
]

引用:

如果我误解了您的问题并且这不是您想要的结果,我深表歉意。

关于python - 使用 gspread 查找电子表格的 file_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56417314/

相关文章:

whatsapp - 将数据存储到谷歌驱动器的备份选项卡而不是驱动器文件夹中

google-api - 查找文件的父 ID : Google Drive API V3

python - 计算奇数然后打印它们的程序

python - 将实例保存到数据库之前/之后是否触发了 Django post_save?

python - Flask RESTful API : Issue with db connection pool

pandas - 如何实际将 csv 文件从 colab 保存到 Google Drive?

python - __import__() 调用 __init__.py 两次?

python - 如何使用 Authlib 和 Gspread 刷新身份验证 token ?

javascript - 如何通过 google docs 插件发送 webhook 请求?

Python Selenium : TypeError: list indices must be integers or slices, 不是 WebElement