我正在尝试使用python库从sharepoint下载文件。代码可以完美地连接和获取sharepoint的内容,但不能下载特定文件。
以下是脚本:
import requests
from requests_ntlm import HttpNtlmAuth
headers = {'accept': 'application/json;odata=verbose'}
r = requests.get("https://abc.we.x/abd.doc", auth=HttpNtlmAuth('domain\\User','ppusers@123'),headers=headers)
print r.json()["d"]["CustomMasterUrl"]
如果我们使用print j.content
,那么我可以看到这个页面的所有html内容,但r.json()["d"]["CustomMasterUrl"]
行给出的错误如下
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\requests\models.py", line 819, in json
return json.loads(self.text, **kwargs)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 366, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
如果有人有其他方法下载文件,请帮助下载。
提前谢谢。
发布于 2015-04-28 21:13:14
我认为您可以使用cmislib从sharepoint下载文件
client = CmisClient(serverurl, username, password)
repo = client.defaultRepository
doc = repo.getObjectbyPath("PathOfFile")
result = doc.getContentStream()
c = result.read()
docFile = open("/Destination/File/Path"+doc.properties['cmis:name'],"w")
docFile.write(c)
docFile.close()
这部分代码在Alfresco服务器上工作得很好,但sharepoint也应该支持cmis。https://msdn.microsoft.com/en-US/library/office/jj945829.aspx也许这能帮到你。
发布于 2015-05-05 13:05:46
感谢所有的回复。这是一个有效的解决方案。基本上,我们遗漏了写入文件的流。
import requests
from requests_ntlm import HttpNtlmAuth
headers = {'accept': 'application/json;odata=verbose'}
url = "https://docs.qmad.er.com/sites/cloud_BPAP/Shared%20Documents/Database%20Deliverables/20150319_Maintenance_BPAP15/20150319_Maintenance.zip"
username = 'abc\\ert' #domain\\username
password = 'User@123'
r = requests.get(url, auth=HttpNtlmAuth(username,password),stream=True)
fh = open("clientNet.zip", "wb")
fh.write(r.content)
fh.close()
https://stackoverflow.com/questions/29920227
复制相似问题