我正在尝试使用python urllib2使用SharePoint REST API访问SharePoint 2013文件夹中的文件。 https://msdn.microsoft.com/en-us/library/office/dn450841.aspx
即使在添加标题'accept'后,我似乎无法将响应作为json对象获取:'application / json; odata = verbose'。
由于限制和权限限制,我使用的是Python 2.7.5,urllib2和无法使用python请求模块。
如果我使用... / _ api / web / GetFolderByServerRelativeUrl('/ File Name')/ Files url,我会得到一个AttributeError(“'str'对象没有属性'read'”)。如果我只是使用网站的普通网址,我会收到一条错误,即响应中没有“JSON对象”。
我不知道我做错了什么以及为什么我不能从这个请求得到任何json?
import sys
import urllib
import urllib2
import json
from ntlm import HTTPNtlmAuthHandler
try:
url = 'https://sharepointsite/subfolder/subfolder/subfolder/Forms/AllItems.aspx/_api/web/GetFolderByServerRelativeUrl(/Folder Name)/Files'
user = r'DOMAIN\USER'
password = '*********'
req = urllib2.Request(url)
req.add_header('accept', 'application/json;odata=verbose')
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, url, user, password)
handler = HTTPNtlmAuthHandler.HTTPNtlmAuthHandler(passman)
opener = urllib2.build_opener(handler)
urllib2.install_opener(opener)
response = urllib2.urlopen(req)
data_json = json.load(response.read())
except Exception as e:
print '{0}'.format(e)
答案 0 :(得分:0)
请求实际返回的是json对象的字符串表示形式。
您可以使用json.loads()
函数代替json.load()
函数,以便将字符串转换为json对象。