Нахождение file_id электронной таблицы с помощью gspread - PullRequest
1 голос
/ 02 июня 2019

Я пытаюсь освободить место в моей учетной записи службы Google.Я использовал его для работы с электронными таблицами и хочу удалить некоторые электронные таблицы, которые я создал ранее.Чтобы удалить электронную таблицу, используйте функцию gc.del_spreadsheet (file_id) в gspread.Однако я не смог найти способ получить идентификаторы файлов таблиц, которые я хочу удалить.

Я не смог найти способ открыть диск Google учетной записи службы, как диск Google личной учетной записи.Поэтому я использовал следующий код, чтобы перечислить все электронные таблицы в учетной записи на данный момент.Код выводит заголовок электронной таблицы, но не идентификатор файла, который требуется для удаления электронной таблицы.

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()

Конечной целью является удаление электронных таблиц с помощью функции gspread del_spreadsheet, для которой требуется "file_id".

1 Ответ

1 голос
/ 03 июня 2019
  • Вы хотите получить заголовок таблицы и идентификатор таблицы, используя gspread.

Если мое понимание верно, как насчет этой модификации?

От:

titles_list.append(spreadsheet.title)

Кому:

titles_list.append({'title': spreadsheet.title, 'id': spreadsheet.id})
  • Объект spreadsheet из for spreadsheet in gc.openall(): включает идентификатор электронной таблицы.
  • Чтобы получить идентификатор таблицы, в вашем скрипте используйте spreadsheet.id.

С помощью этой модификации вы можете получить следующий результат.

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

Справка:

Если я неправильно понял ваш вопрос, и это был не тот результат, которого вы хотите, я прошу прощения.

...