Использование gspread для чтения из электронной таблицы Google Диска без входа в систему

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

gc = gspread.Client(None)
sheet = gc.open_by_key(KEY)

Но это не удается с ошибкой

(<class 'xml.etree.ElementTree.ParseError'>, ParseError(ExpatError('no element found: line 1, column 0',),), None)

Как я могу этого добиться?


person watersnake    schedule 11.07.2015    source источник


Ответы (2)


Честно говоря, я не знаю, от чего исходит ошибка. Может помочь вставка большего количества трассировки стека и некоторых дополнительных частей кода.

В любом случае, как вы сами упомянули, вы предпочитаете не использовать свою регистрационную информацию (адрес электронной почты/пароль).

GSpread также предлагает авторизоваться, используя gspread.Client(auth, http_session=None), где параметр auth — это объект учетных данных OAuth2. Объекты учетных данных создаются библиотекой oauth2client.

Я нашел эту ссылку, очень полезную, чтобы освоить ее и заставить ее работать. .

Вы больше не будете входить в свою учетную запись, что хорошо, вместо этого она получит учетные данные клиента OAuth 2.0 из консоли разработчиков Google. Затем ваше клиентское приложение запрашивает токен доступа с сервера авторизации Google, извлекает токен из ответа и отправляет токен в API Google, к которому вы хотите получить доступ.

person DJanssens    schedule 11.07.2015

Вы опубликовали свою таблицу в Интернете? С этим вы можете делать то, что хотите, я разместил здесь образцы кода ">Загрузка общей таблицы Google в Pandas

person dartdog    schedule 11.07.2015