Использование Python для доступа к файлу Excel на Sharepoint с помощью модуля Office365 Python - PullRequest
0 голосов
/ 06 мая 2020

Цель этого кода - использовать Python для чтения файла Excel из папки SharePoint с помощью модуля Office365-REST- Python -Client 2.1.7.post1. Я работал с нашей группой ИТ-безопасности, чтобы получить коды ClientID и Client Secret для токена авторизации, и убедился, что они работают. Но всякий раз, когда я пытаюсь получить доступ к заданному файлу Excel в папке библиотеки документов, я получаю ошибку TypeError: 'NoneType' object is not subscriptable.

Вот код:

from office365.runtime.auth.authentication_context import AuthenticationContext
from office365.sharepoint.client_context import ClientContext
from office365.sharepoint.file import File

credentials = {
    'credurl': 'https://portal.[COMPANYNAME].com/sites/documentlibrary',
    'client_id': '[CLIENT ID CODE]',
    'client_secret': '[CLIENT SECRET]',
}
relative_url = '/sites/documentlibrary/testfolder/Test-2020-05-01.xlsx'

context_auth = AuthenticationContext(url=credentials['credurl'])
context_auth.acquire_token_for_app(client_id=credentials['client_id'], client_secret=credentials['client_secret'])
ctx = ClientContext(credentials['credurl'], context_auth)

filename = 'output-2020-05-02.xlsx'
with open(filename, 'wb') as output_file:
    response = File.open_binary(ctx, relative_url)
    output_file.write(response.content)

Код ошибки в строке response = File.open_binary(ctx, relative_url). Вот полная ошибка:

Traceback (most recent call last):
  File "[NETWORK PATH]/Post-Test.py", line 46, in <module>
    response = File.open_binary(ctx=ctx, server_relative_url=relative_url)
  File "C:\Program Files\Python38\lib\site-packages\office365\sharepoint\file.py", line 201, in open_binary
    response = ctx.execute_request_direct(request)
  File "C:\Program Files\Python38\lib\site-packages\office365\runtime\client_runtime_context.py", line 34, in execute_request_direct
    return self.pending_request.execute_request_direct(request)
  File "C:\Program Files\Python38\lib\site-packages\office365\runtime\client_request.py", line 41, in execute_request_direct
    self.context.authenticate_request(request_options)
  File "C:\Program Files\Python38\lib\site-packages\office365\runtime\client_runtime_context.py", line 15, in authenticate_request
    self.__auth_context.authenticate_request(request)
  File "C:\Program Files\Python38\lib\site-packages\office365\runtime\auth\authentication_context.py", line 37, in authenticate_request
    request_options.set_header('Authorization', self.provider.get_authorization_header())
  File "C:\Program Files\Python38\lib\site-packages\office365\runtime\auth\acs_token_provider.py", line 76, in get_authorization_header
    return 'Bearer {0}'.format(self.access_token["access_token"])
TypeError: 'NoneType' object is not subscriptable

Любая помощь приветствуется!

1 Ответ

1 голос
/ 08 мая 2020

Вот пример, демонстрирующий, как загрузить файл из sharepoint с помощью Office365-REST- Python -Client.

File.open_binary

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...