Программно извлекает gid GoogleSheets, используя Python - PullRequest
1 голос
/ 01 апреля 2020

У меня есть случай использования, когда я получаю доступ к данным Covid-19 через URL GoogleSheet. Когда файл полностью загружен, появляется gid. в данном случае это: 1576906596. Через день или два идентификатор gid изменится, что приведет к разрыву URL-адреса, если только вы не заходите на сайт с частью URL без редактирования # gid = 1576906596 В настоящее время я чтение gid вручную после загрузки файла, но я ищу способ извлечь его и автоматически пометить его основной частью URL https://docs.google.com/spreadsheets/d/14quQPFErG-hlpsrNgYcX85vW7JMMK5X2vNZrafRcH8c/edit# gid = 1576906596

gid = "1576906596"    # need to extract automatically
baseURL = "https://docs.google.com/spreadsheets/d/14quQPFErG-hlpsrNgYcX85vW7JMMK5X2vNZrafRcH8c/"
fullURL = baseURL + gid

1 Ответ

2 голосов
/ 02 апреля 2020
  • Вы хотите получить идентификатор листа (GID) из электронной таблицы.
  • Электронная таблица является общедоступной.
  • Вы хотите добиться этого с помощью python.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

Проблема и обходное решение:

В вашем случае, чтобы получить идентификатор листа (GID) из общедоступной электронной таблицы, это требуется использовать метод get Sheets API. Кроме того, на текущем этапе ключ API требуется для использования Sheets API v4. Листы API v3 можно использовать без использования ключа API. Но Sheets API v3 закрыт 30 сентября 2020 года. Ref Поэтому я рекомендую использовать Sheets API v4.

Использование:

Чтобы использовать этот обходной путь, пожалуйста сделайте следующий поток.

1. Получить ключ API.

Пожалуйста, проверьте этот официальный документ для получения ключа API.

2. Пример сценария.

import requests

apiKey = "###"  # Please set your API key.

# Retrieve GID from Spreadsheet.
spreadsheetId = "14quQPFErG-hlpsrNgYcX85vW7JMMK5X2vNZrafRcH8c"  # This is the Spreadsheet ID of your Spreadsheet.
url = "https://sheets.googleapis.com/v4/spreadsheets/" + spreadsheetId + "?fields=sheets.properties.sheetId&key=" + apiKey
res = requests.get(url).json()
gid = "edit#gid=" + str(res["sheets"][0]["properties"]["sheetId"])

baseURL = "https://docs.google.com/spreadsheets/d/14quQPFErG-hlpsrNgYcX85vW7JMMK5X2vNZrafRcH8c/"
fullURL = baseURL + gid
print(fullURL)

Ссылка :

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...