pitone lavorando con API Microsoft Onedrive

voti
1

Voglio scrivere un semplice script per caricare alcuni file dal mio Microsoft Onedrive.

Finora ho autenticato con successo e posso accedere ai miei file. ma ora voglio insegnare pitone di decodificare quelli JSON che ricevo da Microsoft Onedrive. Non riesco proprio a portare python di restituirmi il nome e il link dal JSON.

L'URL e il nome sono sotto il tasto value e sono chiamati: name e @content.downloadUrl Ho solo bisogno di questi due valori 2 volte (in quanto sono due file ho bisogno di scaricare)

import json
from urllib.request import urlopen
import codecs

json_raw = urlopen('https://api.onedrive.com/v1.0/drive/root:/aFolderInOneDrive:/children?access_token=EwBwAq.....5uqp18B').read().decode('utf8')

json_dict = json.loads(json_raw)

print(json_dict)

print(json_dict[value][name]) #my last try

qui è la traceback

Traceback (most recent call last):
  File getKeepass.py, line 10, in <module>
    print(json_dict[value][name])
TypeError: list indices must be integers, not str

So che probabilmente ho bisogno di iterare il JSON, ho provato:

for i in json_dict:
    print(i['name'])

ma ottengo lo stesso errore, allora.

È pubblicato 10/09/2015 alle 11:50
dall'utente
In altre lingue...                            


1 risposte

voti
0

Nel tuo caso json_dict ins't davvero un dizionario, è una lista di bambini.

Basta iterare la lista o ottenere un bambino in base all'indice:

for child in children:
    print(child["value"]["name"])

print(json_dict[0]["value"]["name"])
Risposto il 10/09/2015 a 12:59
fonte dall'utente

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more