2017-02-22 27 views
9

У меня есть папка с файлами google с сотнями книг. Я хочу перебирать список и обновлять данные. По какой-то причине gspread может открывать только определенные книги, но не другие. У меня только недавно была эта проблема.gspread «SpreadsheetNotFound» в некоторых книгах

Это не проблема доступа, потому что все находится в одной папке.

Я получаю raise SpreadsheetNotFound когда я open_by_key(key). Но затем, когда я беру ключ и вставляю его в URL-адрес, открывается лист. Это означает, что это не ключ.

Что здесь происходит? Я удивлен, что другие люди не сталкиваются с этой ошибкой.

Удалось ли мне ограничить количество листов Google, которые у меня есть? У меня около 2 тысяч.

Обновление: Я нахожу, что если я войду в книгу и тыкаюсь, лист узнается ?? !! Что это значит? Он не распознает лист, если лист неактивен недавно?

Также, если я попытаюсь использовать Google App Script SpreadsheetApp.openById, ключ будет распознан! Таким образом, лист есть, я просто не могу открыть его с помощью gspread. У меня есть сценарий Google, чтобы написать что-то на листе, прежде чем он будет распознан gspread.

Я могу открыть лист, используя pygsheets, но так как он новый и такой глючный, я не могу его использовать. Это похоже на вопрос APIv4? Некоторые листы не могут быть открыты с помощью APIv3?

обновление: здесь еще одно наблюдение. Когда вы откроете книгу с помощью APIv4, вы больше не сможете ее открывать с помощью V3.

+0

Возможно, отдельные книги в папке не передаются клиенту службы сервиса google? –

+0

@ Haleemur Ali. Нет общей папки с клиентом. – jason

+0

Просто идея: вы пробовали 'open_by_url' вместо' open_by_key'? –

ответ

2

Я думаю, что вы можете быть ударять Google Drive API предел «Запросы на 100 секунд для каждого пользователя», который является 1000 и не может быть изменено на более высокое значение.

Решение 1:

Вы можете попробовать обратиться за более высокую квоту, перейдя к вам страницу проекта:
1 - ПАНЕЛЬ
2 - Квоты
3 - Нажмите на карандаше после "Запросов на 100 секунд на каждого пользователя"
4 - Затем нажмите «Применить для повышения квоты»
5 - Вы закончите вверх на https://support.google.com/code/contact/drive_quota, но если вы будете следовать шаги, описанные выше, форма будет иметь project и user детали уже заполнены.


Решение 2:

Я была такая же проблема с только пару таблиц на моем счете, проблема была решена:

1 - Открытие файла ключа JSon (projectname-ca997255dada.json)
2 - Найдите значение client_email, то есть:

"client_email": "[email protected]", 

3 - Делитесь лист (ы) с этой электронной почты

Примечание: Вы можете попробовать изменить только один таблицу, что вы не можете открыть и проверить, если выше решить эту проблему.

+0

Я не думаю, что это правильно, потому что утром утром я просыпаюсь первым и пытаюсь запустить простой код, чтобы открыть только один лист. В основном первый запрос дня ... и который все еще не работает. – jason

+0

Вы считали помехи от пожара или AV? –

+0

Да, это не проблема. – jason

1

Я неоднократно сталкивался с этой проблемой. Единственное постоянное исправление, которое я нашел, - это «повторно передать» файл пользователю api. Он уже перечисляет пользователя api как общий (поскольку он находится в той же общей папке, что и все остальное), но после «повторного обмена» я могу подключиться к gspread без проблем.

Исходя из этого, я считаю, что на самом деле это может быть проблема с разрешениями (Google не смог зарегистрировать правильное разрешение для пользователя API при доступе к нему через APIv3).

2

Это звучит так, как будто вы делаете ограничение в gspread.

Даже если вы открываете электронную таблицу по ключевому слову, gspread по-прежнему сначала загружает фид всех явно разделяемых листов, используя https://spreadsheets.google.com/feeds/spreadsheets/private/full, и проверяет, является ли ключ, который вы предоставили, среди них.

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

Я бы предположил, что корм упорядочен по последнему слову техники, что объясняет, почему его редактирование делает его видимым для gspread.

Соответствующий выпуск: here.

 Смежные вопросы

  • Нет связанных вопросов^_^