Объект 'str' не может быть вызван в Google SDK при попытке получить электронную таблицу.Python

Программы на Python
Ответить
Anonymous
 Объект 'str' не может быть вызван в Google SDK при попытке получить электронную таблицу.

Сообщение Anonymous »

Я пытаюсь получить электронную таблицу с помощью Google SDK. Я вошел в учетную запись с ролью создателя токена учетной записи службы, и учетная запись службы имеет права доступа к электронной таблице. Это мой код:

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

def build_gcp_sheets_service():
target_scopes = ['https://www.googleapis.com/auth/spreadsheets.readonly']

source_credentials, _ = google.auth.default()

target_credentials = impersonated_credentials.Credentials(
source_credentials=source_credentials,
target_principal=config.gcp.local_service_account,
target_scopes=target_scopes,
lifetime=60
)

service = build('sheets', 'v4', credentials=target_credentials)
return service

service = build_gcp_sheets_service()

sheet = service.spreadsheets()
request = sheet.values().get(spreadsheetId=file_id, range=sheet_range)
result = request.execute() # Error occurs here
Вызов request.execute() приводит к следующей ошибке:

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

Traceback (most recent call last):
File "/aircraft-detection/ml/gcp.py", line 69, in _fetch_spreadsheet
result = request.execute()
^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper
return wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/googleapiclient/http.py", line 923, in execute
resp, content = _retry_request(
^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/googleapiclient/http.py", line 191, in _retry_request
resp, content = http.request(uri, method, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/site-packages/google_auth_httplib2.py", line 207, in request
self.credentials.before_request(self._request, method, uri, request_headers)
File "/usr/local/lib/python3.11/site-packages/google/auth/credentials.py", line 228, in before_request
self._blocking_refresh(request)
File "/usr/local/lib/python3.11/site-packages/google/auth/credentials.py", line 191, in _blocking_refresh
self.refresh(request)
File "/usr/local/lib/python3.11/site-packages/google/auth/credentials.py", line 365, in refresh
self._refresh_token(request)
File "/usr/local/lib/python3.11/site-packages/google/auth/impersonated_credentials.py", line 289, in _refresh_token
self._source_credentials._refresh_token(request)
TypeError: 'str' object is not callable
Я подозреваю, что что-то не так с моей конфигурацией gcloud, а не с кодом, потому что:
  • Этот код работал раньше, и ошибка начала возникать, несмотря на отсутствие изменений в коде.
  • Код работает на других машинах (других разработчиков)
Я переустановил gcloud sdk и снова настроил его, но это не помогло.

Подробнее здесь: https://stackoverflow.com/questions/798 ... preadsheet
Ответить

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

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

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

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

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