2015-09-22 2 views
2

Я хочу, чтобы помочь извлечь «URL» значение из - https://www.udemy.com/api-2.0/channels/1640/courses?is_angular_app=true&p=2экстракт значение ключа из JSon питона

import urllib2, json 
response = urllib2.urlopen('https://www.udemy.com/api-2.0/channels/1640/courses?is_angular_app=true&p=2') 
data = json.load(response) 

for data["url"] in data.items(): 
    print data["url"] 

Это не работает выше. Пожалуйста, помогите

+0

Check this: response возвращает словарь JSON, нет массива, не имеет свойства 'url' - однако ответ содержит свойство 'result', которое sto res - массив объектов курса, обладающих свойством url. Таким образом, вы можете перебирать свойство результатов вместо всего ответа. – aknoepfel

ответ

0

Используя этот код вы можете получить URL первого массива

import urllib2, json 
response = urllib2.urlopen('https://www.udemy.com/api-2.0/channels/1640/courses?is_angular_app=true&p=2') 
data = json.load(response) 

print data['results'][0]['url'] 

Используйте цикл для получения всех URL из каждого массива

import urllib2, json 
response = urllib2.urlopen('https://www.udemy.com/api-2.0/channels/1640/courses?is_angular_app=true&p=2') 
data = json.load(response) 

i = 0; 
for data["url"] in data['results']: 
    print data['results'][i]['url'] 
    i+=1 
+0

Я сделал это - для каждого в данных ['results']: print each ['url'] –

+0

Спасибо Paresh. Я пойду дальше и приму ваш ответ, это помогло мне задуматься о повторении массива результатов. –

0

Попробуйте это:

import urllib2, json 
response = urllib2.urlopen('https://www.udemy.com/api-2.0/channels/1640/courses?is_angular_app=true&p=2') 
data = json.load(response) 
for i in range(len(data['results'])): 
    print data['results'][i]['url'] 
Смежные вопросы