Office365-rest-python-client: Tidak ada output folder.file/tidak ada kesalahan

Dibuat pada 13 Mar 2019  ·  12Komentar  ·  Sumber: vgrem/Office365-REST-Python-Client

Hai,

tujuan saya adalah mencetak konten perpustakaan/daftar dokumen situs sharepoint
dan saya mencoba mencari tahu mengapa saya tidak mendapatkan hasil/tidak ada kesalahan apa pun.

Url saya https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx
menunjuk ke Dokumen yang berisi 2 folder dan 1 file tetapi sepertinya saya tidak dapat melihatnya dengan menjalankan skrip ini.
Mengubah list_object dari "Dokumen Bersama" ke judul alternatif tidak ada bedanya.

Apakah saya melewatkan sesuatu yang jelas di sini, tolong? Bantuan apa pun akan sangat dihargai.

Terima kasih.

Marcel

dari office365.runtime.auth.authentication_context impor AuthenticationContext
dari office365.sharepoint.client_context impor ClientContext

pengaturan_aplikasi = {
'url': ' https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx ',
'client_id': 'f638a093-aa8f-48c7-a4e6-998d7d1ee388',
'client_secret': 'xysjblahblah',
}

jika __name__ == '__main__':
context_auth = AuthenticationContext(url=app_settings['url'])
jika context_auth.acquire_token_for_app(client_id=app_settings['client_id'], client_secret=app_settings['client_secret']):

    ctx = ClientContext(app_settings['url'], context_auth)

    list_object = ctx.web.lists.get_by_title("Shared Documents")
#list_object = ctx.web.lists.get_by_title("Documents")
#list_object = ctx.web.lists.get_by_title("FRAReporting")

    folder = list_object.root_folder        
    ctx.load(folder)
    ctx.execute_query()

    files = folder.files
    ctx.load(files)
    ctx.execute_query()

    for myfile in files:
        print("File name: {0}".format(myfile.properties["Name"]))

Semua 12 komentar

btw menggunakan Office365-REST-Python-Client (2.1.1) dan python 3.6.4

Salam pembuka!

Sayangnya saya tidak dapat menemukan masalah apa pun dengan contoh yang diberikan, semuanya terlihat bagus untuk saya.

Dari uraian di bawah ini:
_menunjuk ke Dokumen yang berisi 2 folder dan 1 file_

mungkinkah file tidak disimpan di bawah folder root tetapi di bawah sub folder?

Bagaimanapun, bisakah Anda mencoba pendekatan ini hanya untuk memastikan apakah barang dikembalikan atau tidak?

list_obj = context.web.lists.get_by_title(list_title)
qry = CamlQuery.create_all_items_query()
items = list_obj.get_items(qry)
context.load(items)
context.execute_query()
for cur_item in items:
    print("File name: {0}".format(cur_item.properties["Title"]))

image

Hai,
Saya mendapatkan yang berikut ini saat menjalankan kode Anda:

PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.py
Traceback (panggilan terakhir terakhir):
File ".sharePoint_office365_test4.py", baris 36, di
ctx.execute_query()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_runtime_context.py", baris 36, di execute_query
self.pending_request.execute_query()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py", baris 32, di execute_query
kembalikan self.execute_pending_queries()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py", baris 38, di execute_pending_queries
respon = self.execute_request_direct(permintaan)
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365runtimeclient_request.py", baris 109, di execute_request_direct
self.context.ensure_form_digest(request_options)
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py", baris 27, di sure_form_digest
self.request_form_digest()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesoffice365sharepointclient_context.py", baris 39, di request_form_digest
muatan = respon.json()
File "C:UsersfooAppDataLocalProgramsPythonPython36libsite-packagesrequestsmodels.py", baris 897, di json
kembali complexjson.loads(self.text, **kwargs)
File "C:UsersfooAppDataLocalProgramsPythonPython36libjson__init__.py", baris 354, sedang dimuat
kembalikan _default_decoder.decode
Berkas "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", baris 339, dalam dekode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:UsersfooAppDataLocalProgramsPythonPython36libjsondecoder.py", baris 362, di raw_decode
menaikkan JSONDecodeError("Mengharapkan nilai", s, err.value) dari Tidak ada
json.decoder.JSONDecodeError: Nilai yang diharapkan: baris 2 kolom 1 (char 2)
PS C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint>

Ketika saya mencetak string dalam pengecualian raw_decode, terlihat seperti ini, silakan lihat lampiran

Terima kasih banyak atas waktu Anda.
Marcel

Saat meninjau untuk kedua kalinya (dan melihat tangkapan layar yang disediakan, terima kasih untuk itu!), Saya melihat url yang diberikan tampaknya tidak valid:

app_settings = {
'url': 'https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx',
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
         needs to be site url  

}

Url yang disediakan sesuai dengan _absolute Url dari halaman tampilan perpustakaan_ tetapi yang sebenarnya diharapkan ClientContext adalah siteUrl , jadi alih-alih:

https://my.jci.com/sites/FRAReporting/Shared%20Documents/Forms/AllItems.aspx

silahkan mencoba:

https://my.jci.com/sites/FRAReporting/

Anda benar sekali, itu saja.
Anda membuat hari saya, tidak bisa cukup berterima kasih.
M.

Menjalankan skrip Anda sekarang dicetak seperti 15 baris:

C:UsersfooAppDataLocalProgramsPythonPython36ScriptsSharePoint> ....python.exe .sharePoint_office365_test4.
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada
Nama file: Tidak ada

saat menjalankan skrip asli saya (maksud saya milik Anda :) saya mendapatkan hasil yang diharapkan:
Nama file: Document.docx
Nama file: access_denied.txt

Pertanyaan saya adalah, bagaimana saya bisa membuat daftar semua file di bawah folder "TEST" dari SS di atas, misalnya. Itulah tepatnya yang saya coba capai.

Saya tidak tahu apakah saya bisa menguraikan masalah saya yang sebenarnya. Sama seperti Anda berhasil mencetak file Anda di root (atau apa pun namanya; Dokumen):

Nama file: Document.docx
Nama file: access_denied.txt

Saya juga bisa melakukan itu. Tapi, ingin mendapatkan daftar file di folder bukan.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

domdinicola picture domdinicola  ·  4Komentar

ahulist picture ahulist  ·  5Komentar

pobs93 picture pobs93  ·  4Komentar

continda picture continda  ·  4Komentar

stardust85 picture stardust85  ·  4Komentar