#python #excel #pandas #azure #sharepoint
Вопрос:
Мне нужно перенести мой файл SharePoint excel в фрейм данных pandas, потому что мне нужно выполнить анализ с использованием python для этого файла excel. для доступа к SharePoint я использую приведенный ниже код, и он работает. Из приведенного ниже кода я могу получить доступ к своему файлу excel, который находится в SharePoint. Теперь я хочу перенести свой файл excel в фрейм данных pandas.итак, как я могу изменить приведенный ниже код?
from office365.sharepoint.client_context import ClientContext
SP_SITE_URL ='https://asdfgh.sharepoint.com/sites/ABC/'
SP_DOC_LIBRARY ='Publications'
USERNAME ='asd@fgh.onmicrosoft.com'
PASSWORD ='******'
# 1. Create a ClientContext object and use the user’s credentials for authentication
ctx =ClientContext(SP_SITE_URL).with_user_credentials(USERNAME, PASSWORD)
# 2. Read file entities from the SharePoint document library
files = ctx.web.lists.get_by_title(SP_DOC_LIBRARY).root_folder.files
ctx.load(files)
ctx.execute_query()
# 3. loop through file entities
for filein files:
# 4. Access the file object properties
print(file.properties['Name'], file.properties['UniqueId'])
# 5. Access list item object through the file object
item = file.listItemAllFields
ctx.load(item)
ctx.execute_query()
print('Access metadata - Category: {0}, Status: {1}'.format(item.properties['Category'], item.properties['Status']))
# 4. The Output:
# File Handling in SharePoint Document Library Using Python.docx 77819f08-5fbe-450f-9f9b-d3ae2862cbb5
# Access metadata - Category: Python, Status: Submitted
Ответ №1:
Для его работы файл должен будет присутствовать в памяти системы.
Найдите путь к файлу — он должен быть в Метаданных файла, которым вы уже являетесь.
С помощью приведенной ниже библиотеки :
from office365.sharepoint.files.file import File
Вы можете использовать приведенный ниже код, чтобы продолжить, сохранить его в памяти и прочитать из фрейма данных Panda.
response = File.open_binary(ctx, url)
bytes_file_obj = io.BytesIO()
bytes_file_obj.write(response.content)
bytes_file_obj.seek(0) #set file object to start
df = pd.read_excel(bytes_file_obj, sheetname = <Sheetname>)
Комментарии:
1. Проследите, помогло ли вышеприведенное решение ?