Поиск file_id электронной таблицы с помощью gspread

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

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

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".


person Sameera    schedule 02.06.2019    source источник


Ответы (1)


  • Вы хотите получить заголовок электронной таблицы и идентификатор электронной таблицы с помощью gspread.

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

Из:

titles_list.append(spreadsheet.title)

To:

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 ###'},
,
,
,
]

Ссылка:

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

person Tanaike    schedule 02.06.2019