Я пытаюсь использовать python urllib2 для доступа к файлам в папке SharePoint 2013 с использованием API REST SharePoint. https://msdn.microsoft.com/en-us/library/office/dn450841.aspxПолучить объект JSON из запроса python urllib2
Я не могу получить ответ как объект json даже после добавления заголовка 'accept': 'application/json; odata = verbose'.
Я использую Python 2.7.5, urllib2 и не может использовать python-запросы из-за ограничений и ограничений разрешений.
Если я использую .../_ api/web/GetFolderByServerRelativeUrl ('/ File Name')/url файлов Я получаю AttributeError (объект 'str' не имеет атрибута'read '"). Если я просто использую обычный URL-адрес сайта, я получаю сообщение об ошибке, что в ответе нет объекта 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)
Я изменил его, чтобы использовать функцию 'json.loads()', и я получаю ValueError («Объект JSON не может быть декодирован»,) Я понимаю, что ответ SharePoint по умолчанию соответствует xml, но я подумал, добавив заголовок к запросу это вернет json? – bighill
Вы пробовали распечатать результат 'response.read()', чтобы посмотреть, как он выглядит? –
Да, это строка html – bighill