Ошибка сервера gspread API 502 при обновлении Google Sheet с помощью PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка сервера gspread API 502 при обновлении Google Sheet с помощью Python

Сообщение Anonymous »

Я новичок в этом деле, поэтому собираюсь предоставить как можно больше информации на случай, если она будет актуальна.В VSCode (1.93.1): Я создал скрипт Python, который обновляет файл Google Sheets с помощью API gspread. Скрипт работал 6 месяцев без проблем, но внезапно начал выдавать ошибку сервера 502, хотя я не вносил никаких изменений ни в код, ни в модули, ни в версию Python, ни во что-либо вообще. Я использую python3 при запуске программы. Эта ошибка сохраняется уже две недели.

Код: Выделить всё

502.[/b] That’s an error.
The server encountered a temporary error and could not complete your request.Please try again in 30 seconds.  That’s all we know.
Скрипту необходимо перебрать более 900 элементов массива, и ошибка каждый раз возникает в разных точках. В среднем он проходит около 100 элементов, прежде чем возникает ошибка, но останавливается, как только достигается 3-й элемент и 351-й элемент, поэтому время возникновения ошибки кажется случайным. В случае, если gspread API снизил ограничения по скорости, я использовал модуль времени, чтобы приостановить программу на 10 секунд на каждой итерации, и на 152-й итерации она все равно выдавала ошибку 502.
Я не уверен, имеет ли это значение, но когда я навожу курсор на импорт gspread, появляется сообщение: Импорт «gspread» не может быть разрешен. Кроме того, из oauth2client.service_account импорт ServiceAccountCredentials не разрешен. Единственные другие модули, которые я импортирую, — это встроенные модули, такие как «csv» и «time», поэтому у них нет предупреждения «не решено».
Однако скрипт использует gspread для доступа к файлу Google Sheets, поэтому, если проблема была в импорте, сценарий должен аварийно завершиться немедленно, а не сначала пройти 100 итераций. Но если я наберу gspread., ничего не появится с точечной нотацией, в то время как мой старый код, такой как client = gspread.authorize(creds), использует точечную нотацию для вызова метода авторизации, который должен работать. иначе приложение сразу же выйдет из строя, верно? Я не понимаю, почему я не могу получить доступ к методам gspread при вводе новой строки кода, хотя мой ранее написанный код все еще использует эти методы.
Только для тестирования я импортировал pandas прямо сейчас, что также показывает предупреждение «невозможно разрешить», но я могу получить доступ к методам и свойствам pandas с помощью точечной записи.
Я использую Windows 11 Pro и Ubuntu (WSL) .
При необходимости я могу предоставить часть кода, но поскольку программа каждый раз завершается в разных точках, похоже, что проблема не в коде, тем более что код работало 6 месяцев, прежде чем я начал получать эту ошибку.
Изначально я установил gspread с помощью pip, но не уверен, был ли это pip или pip3. После возникновения этой проблемы я увидел, что кто-то на SO рекомендовал использовать pip3 install gspread, поэтому я попробовал это, но ничего не изменилось.
Кто-то рекомендовал обновить мою версию Python, поэтому я установил последняя версия Python 3.12.6, а в VSCode я использовал Python: Select Interpreter и выбрал рекомендуемую 64-разрядную версию 3.12.6. VSCode показывает 64-битную версию 3.12.6 в правом нижнем углу, но когда я запускаю python3 --version в терминале, он все равно показывает 3.8.10. Я попытался перезагрузить компьютер, но ничего не изменилось.
Я также пытался воссоздать сценарий с нуля в PyCharm, и мне удалось импортировать gspread и запустить программу, но теперь она выдает ошибку JSONDecodeError, которая также возникает в случайное время. Я запускал программу на PyCharm дважды, и первый раз остановился на 24-м элементе массива, а второй раз остановился на 136-м элементе (ничего не меняя).
В приведенных ниже путях к файлам я заменил имя пользователя и имена файлов на "..."

Код: Выделить всё

File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\requests\models.py", line 974, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.11_3.11.1264.0_x64__qbz5n2kfra8p0\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "C:\Users\...\PycharmProjects\...\...\file.py", line 46, in 
if sheet.find(new_sku):
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\gspread\worksheet.py", line 2326, in find
return next(self._finder(filter, query, case_sensitive, in_row, in_column))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\gspread\worksheet.py", line 2243, in _finder
data = self.client.values_get(
^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\gspread\http_client.py", line 236, in values_get
r = self.request("get", url, params=params)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\gspread\http_client.py", line 128, in request
raise APIError(response)
^^^^^^^^^^^^^^^^^^
File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\gspread\exceptions.py", line 45, in __init__
self.error: Mapping[str, Any] = response.json()["error"]
^^^^^^^^^^^^^^^
File "C:\Users\...\PycharmProjects\...\...\.venv\Lib\site-packages\requests\models.py", line 978, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
Когда говорится, что в строке 46 произошло еще одно исключение ifsheet.find(new_sku):, я не думаю, что проблема связана с этим кодом, потому что эта строка кода получает выполняется для каждого элемента массива, поэтому, если я запускаю сценарий, и он останавливается на 200-м элементе, затем я запускаю его снова, и он останавливается на 50-м элементе, почему он в первый раз прошел 50-й элемент?
Я совершенно не понимаю, почему эта программа вдруг перестала работать. Если у кого-то есть идеи, буду очень признателен.

Подробнее здесь: https://stackoverflow.com/questions/790 ... ith-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка сервера gspread API 502 при обновлении Google Sheet с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Ошибка сервера gspread API 502 при обновлении Google Sheet с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Ошибка сервера gspread API 502 при обновлении Google Sheet с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous
  • Ошибка сервера gspread API 502 при обновлении Google Sheet с помощью Python
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Google API: просмотр результатов MySQL для добавления нескольких строк в Google Sheet
    Anonymous » » в форуме Php
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»