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 中导入文件?
使用 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)
据我所知,你不能,但你可以做的是使用 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)