2015-07-01 7 views
3

Я использую gspread для сбора данных из нескольких сотен таблиц Google Таблиц. Я разбираю файлы, хранящиеся на Google Диске, в локальном каталоге и получаю URL-адреса для всех электронных таблиц в указанной папке. Затем я использую оболочку python для прохождения через URL-адреса и оболочку оболочки оболочки, чтобы запускать оболочку python, когда соединение глючит.Постоянная таблицаНезначенные ошибки в конкретных таблицах Google Таблиц в gspread для Python

Одной из причин сбоев является ошибка с таблицей NotFound. Я сделал быструю проверку примерно на полпути и обнаружил, что 21/139 (~ 15%) моих таблиц всегда получают эту ошибку (я пропустил таблицу, если ее не найдено пять раз). Я пошел с iPython и вручную протестировал их с помощью open_by_url, open_by_key и откройте (с заголовком), но все они возвращают ту же ошибку SpreadsheetNotFound. Самая неприятная часть - это возможность скопировать URL-адрес непосредственно из моего сообщения об ошибке, вставив его в браузер, и браузер сразу переходит к электронной таблице без проблем. Вторая самая неприятная часть заключается в том, что она прекрасно работает для ~ 85% электронных таблиц, но 85% не собирается ее резать.

Я даже не уверен, что это разрешимо. Мне просто интересно, есть ли у кого-то еще такая проблема с gspread.

Благодарим за любую отзыв.

Редактирование 1: Hm, таблицы с ошибками были созданы до 2/2/15. Более старые листы были обновлены до последней версии Диска - это могло повлиять на API.

ответ

2

Из документов Gspread:

ClientLogin is deprecated: 
https://developers.google.com/identity/protocols/AuthForInstalledApps?csw=1 
Authorization with email and password will stop working on April 20, 2015. 
Please use oAuth2 authorization instead: 
http://gspread.readthedocs.org/en/latest/oauth2.html 

Так что я полагаю, вы используете oauth2. Это означает, что вам нужно добавить адрес электронной почты в этом файле сертификата json в таблицу.

Using OAuth2 for Authorization

смотри пункт # 7:

Перейти к Google Sheets и поделиться таблицу с электронной почтой у вас есть в вашем json_key [ 'client_email']. В противном случае вы получите исключение SpreadsheetNotFound при попытке его открыть.

+0

Благодарим за отзыв. Да, мне нужно было обновить это, чтобы все рабочие таблицы работали. Странно, что файлы могут совместно использовать одну и ту же папку - с теми же правами - и некоторые работы, а некоторые нет. – user1644030