Ich versuche mit Python urllib2 auf die Dateien in einem SharePoint 2013-Ordner mithilfe der SharePoint-REST-API zuzugreifen. https://msdn.microsoft.com/en-us/library/office/dn450841.aspxJSON-Objekt von Python abrufen urllib2-Anforderung
Ich kann nicht scheinen, die Antwort als ein Json-Objekt zu erhalten, auch nach dem Hinzufügen des Headers "akzeptieren": 'application/json; odata = verbose'.
Ich benutze Python 2.7.5, urllib2 und kann die Python Anfragen Modul aufgrund von Einschränkungen und Einschränkungen der Genehmigung nicht verwenden.
Wenn ich die .../_ api/web/GetFolderByServerRelativeUrl ('/ Dateiname')/Files url verwende, bekomme ich einen AttributeError ('' str 'Objekt hat kein Attribut' read '"). Wenn ich nur die normale URL zu der Site verwende, bekomme ich einen Fehler, dass es kein 'JSON-Objekt' in der Antwort gibt.
Ich weiß nicht, was ich falsch mache und warum ich von dieser Anfrage keinen json bekommen kann?
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)
Ich habe es geändert, um die 'json.loads()' -Funktion zu verwenden, und ich bekomme ValueError ('Kein JSON-Objekt könnte decodiert werden') Ich verstehe, dass SharePoint-Antwort standardmäßig auf XML, aber ich dachte, indem Sie den Header der Anfrage hinzufügen es würde json zurück geben? – bighill
Haben Sie versucht, das Ergebnis von 'response.read()' auszudrucken, um zu sehen, wie es aussieht? –
Ja, es ist die HTML-Zeichenfolge – bighill