我正在尝试清理我的Google服务帐户中的一些空间。我一直在使用它来处理电子表格,我想删除我之前创建的一些电子表格。要删除电子表格,if 在 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})
for spreadsheet in gc.openall():
的对象spreadsheet
包括电子表格 ID。- 为了检索电子表格ID,请在脚本中使用
spreadsheet.id
。
通过此修改,可以检索以下结果。
[ { 'id': '### Spreadsheet ID1 ###',
'title': '### Spreadsheet name1 ###'},
{ 'id': '### Spreadsheet ID2 ###',
'title': '### Spreadsheet name2 ###'},
,
,
,
]
参考:
- 格利普
如果我误解了你的问题,这不是你想要的结果,我很抱歉。