2015-09-10 4 views
1

Я хочу написать простой скрипт для загрузки некоторых файлов из моего onedrive.python, работающий с onedrive api

До сих пор я успешно прошел аутентификацию, и я могу получить доступ к своим файлам. но теперь я хочу научить python расшифровать тех json, которые я получаю от onedrive. Я просто не могу принести python, чтобы вернуть мне имя и ссылку от json.

URL-адрес и имя находятся под ключ «value» и названы: «name» и «@content.downloadUrl» Мне просто нужно эти два значения в 2 раза (как это два файла, мне нужно, чтобы загрузить)

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 

вот отслеживающий

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 

Я знаю, что, вероятно, нужно перебрать JSON, я попробовал:

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

но тогда я получаю ту же ошибку.

+2

Это невозможно сделать больше, чем догадаться, не видя по крайней мере, некоторые из 'json_dict' или' json_raw'. – bgporter

ответ

0

В вашем случае json_dict не содержит словаря, это список детей.

Просто итерацию по списку или получить ребенка по индексу:

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

print(json_dict[0]["value"]["name"]) 
Смежные вопросы