Загрузка файла с Sharepoint с использованием Python - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь загрузить файл Excel с Sharepoint с помощью модуля office365. Вот мой код.

   from office365.runtime.auth.authentication_context import AuthenticationContext
   from office365.sharepoint.client_context import ClientContext
   from office365.sharepoint.file import File
   app_settings = {
     'url': 'https://xxxxx/sites/DownloadFiles',
     'client_id': 'xxxxxx',
     'client_secret': 'xxxxxx',
   }
   if name == 'main':
      ctx_auth = AuthenticationContext(url=app_settings['url'])
      ctx_auth.acquire_token_for_app(client_id=app_settings['client_id'], 
      client_secret=app_settings['client_secret'])
      ctx = ClientContext(app_settings['url'], ctx_auth)

      path = "F:\myexcel.xlsx"
      response = File.open_binary(ctx, "/Shared%20Documents/myexcel.xlsx")
      response.raise_for_status()
      with open(path, "wb") as local_file:
           local_file.write(response.content)

Когда я запускаю этот код, я получаю следующую ошибку:

400 Client Error: Bad Request for url: https://xxx/DownloadFiles/_api/web/getfilebyserverrelativeurl('/Shared%20Documents/myexcel.xlsx')/%5C$value

1 Ответ

0 голосов
/ 04 мая 2020

Я могу воспроизвести ту же проблему на моем SPO . enter image description here

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

response = File.open_binary(ctx, "/sites/{abc}/Shared%20Documents/source.txt")

Например, я хочу скачать файл из семейства сайтов, например " https://xxxx.sharepoint.com/sites/abc ", serverrelativeurl это" / sites / ab c "

Вы можете получить serverrelativeurl через объект '_spPageContextInfo':

enter image description here

И есть еще одна библиотека SharePoint ' shareplum ', которая предоставляет несколько простых способов работы с файлами, вы можете попробовать.

Best Regards, Baker Kong

...