将Sharepoint列表转换为Pandas Dataframe

问题描述

我在Sharepoint中有一个想要转换为Pandas Dataframe的表。我在很大程度上使用了这个问题来尝试制定解决方Get SharePoint List with Python。但是,我遇到了问题。

这是我到目前为止所拥有的...

import pandas as pd
from shareplum import Site
from requests_ntlm import HttpNtlmAuth

url = 'https://share.corporation.com/sites/group/subgroup/'

username = 'username'
password = 'password'

cred = HttpNtlmAuth(username,password)
site = Site(url,auth=cred,verify_ssl=False)

到目前为止,我可以运行代码而不会引发错误。但是,当我运行此位时:

sp_list = site.List('Q22020') # this creates SharePlum object

ShareplumRequestError: Shareplum HTTP Post Failed : 500 Server Error: Internal Server Error for url: https://share.corporation.com/sites/group/subgroup/_vti_bin/lists.asmx

我实际上并不完全确定我的site.List('Q22020')是正确的。

不过,请按照此视频中的说明进行操作:https://www.youtube.com/watch?v=dvFbVPDQYyk

当我在浏览器中手动输入以下网址时,它会生成一个xml文件,因此我认为它是正确的:https://share.corporation.com/sites/group/subgroup/_vti_bin/ListData.svc/Q22020

解决方法

尝试: https://share.corporation.com/sites/group/subgroup/Lists/Q22020/_vti_bin/lists.asmx

如果不是,则在查看“ Q22020”列表的视图后,转到Web上的列表并查看URL。您的“ url”参数可能不正确。

,

我遇到了同样的问题,并遵循了从 URL 获取列表名称的相同逻辑。但是,我发现列表名称实际上有一个空格,尽管 URL 没有显示它。添加空间解决了问题。

以您的示例为例,如果 URL 是 https://share.corporation.com/sites/group/subgroup/_vti_bin/ListData.svc/Q22020 但名单实际上是 'Q2 2020' 然后您将代码更改为:

sp_list = site.List('Q2 2020')