使用 Pandas 从 SharePoint 读取 csv(Python 身份验证代码)

MCG*_*ode 5 python sharepoint pandas

我在 SharePoint 网站的文档部分有一个 csv。我想在 Pandas 中导入它。当然是我只使用下面的普通代码我得到 HTTP 错误 403 Forbidden。

import pandas
df = pandas.read_csv('link from sharepoint')
Run Code Online (Sandbox Code Playgroud)

如何使用 Python 使 SharePoint 身份验证正常工作,以便 Pandas 可以读取 csv 文件。

我已经在几个互联网帖子中搜索并尝试了代码,但是代码太通用了,我不知道它是什么意思,例如

username = 'YourDomain\\account'
Run Code Online (Sandbox Code Playgroud)

或者

user = r'SERVER\user'
Run Code Online (Sandbox Code Playgroud)

或者它只是没有。

有没有一种简单的方法可以让身份验证工作并在 Pandas 中导入文件?

And*_*rii 5

使用 sharepy 相对简单的解决方案:

import io
import sharepy
import pandas as pd

URL = 'https://yoursharepointsite.sharepoint.com'
FILE_URL = '/sites/...path to your file.../yourfilename.csv'
SHAREPOINT_USER = 'yourusername'
SHAREPOINT_PASSWORD = 'yourpassword'

s = sharepy.connect(URL, username=SHAREPOINT_USER, password=SHAREPOINT_PASSWORD).
r = s.get(URL+FILE_URL)
f = io.BytesIO(r.content)
df = pd.read_csv(f)
Run Code Online (Sandbox Code Playgroud)


Jen*_*obi 0

据我所知,你不能,但你可以做的是使用 API 将 python 连接到 SharePoint。

我所做的是使用 SharePlum -> 通过 pip 下载(pip install shareplum)

import sys, pandas, datetime
from requests_ntlm import HttpNtlmAuth
from shareplum import Site

auth = HttpNtlmAuth('DOMAIN' + '\\' + str(username), str(password)) 
site = Site('sharepointsiteurl', auth=auth, verify_ssl=True) # set to False if behind firewall

site_list = site.List('Name of List')

df = pandas.DataFrame.from_dict(site_list)

# then do what you need to in Pandas
Run Code Online (Sandbox Code Playgroud)

编辑:因为您正在尝试下载 CSV 文件。使用 python-sharepoint api

与上面相同,但不是

site_list = site.List('Name of List')
# do instead
site.download('nameoffile.csv', 'D:/location/to/save.csv')
Run Code Online (Sandbox Code Playgroud)