2016-08-17 1 views
0

Так что я потянув некоторые данные JSON с помощью API и он изначально выглядит следующим образом:Как получить все «ид» в пределах массива питона

{ 
"result": { 
"elements": [ 
    { 
    "id": "SV_3s0FmbrNancSmsB", 
    "name": "Test Survey", 
    "ownerId": "sdfsdfasdf", 
    "lastModified": "2016-08-09T21:33:27Z", 
    "isActive": false 
    }, 
    { 
    "id": "SV_dgJOVyJvwZR0593", 
    "name": "Test Survey", 
    "ownerId": "sdfdsfsdfs", 
    "lastModified": "2016-08-04T17:53:37Z", 
    "isActive": true 
    } 
], 
"nextPage": null 
    }, 
"meta": { 
"httpStatus": "200 - OK" 
} 
} 

Так что я хочу, чтобы вытащить все из идентификаторов в это JSON с помощью Python, а вот мой код:

url = "random.com" 

headers = { 
'x-api-token': "dsfsdagdfa" 
} 

response = requests.get(url, headers=headers) 

data = json.loads(response.text) 

id_0 = data['result']['elements'][0]['id'] 

print(id_0) 

Это в основном просто напечатать первый Id в созданном массиве. Что бы я сделал, чтобы получить все идентификаторы?

+0

Возможный дубликат [Как извлечь определенные несколько значений в формате JSON с помощью Python?] (HTTP: //stackoverflow.com/questions/33308538/how-to-extract-specific-multiple-values-in-json-using-python) – smac89

ответ

2

Вы можете использовать этот Oneliner:

ids = [element['id'] for element in data['result']['elements']] 
+0

Работает спасибо! –

1

Это должно сработать. Я уверен, что есть более элегантный способ с пониманием карты или списка.

ids = [] 

for elem in data['result']['elements']: 
    ids.append(elem['id']) 

Если вы хотите оценить это лениво, сделайте постижение генератора!

ids = (element['id'] for element in data['result']['elements'])

+1

Спасибо! Это работает, но другие немного чище! –

+0

Да, они уверены! – saarrrr

2

Как насчет:

ids = [element['id'] for element in data['result']['elements']] 
+0

работает! Спасибо! –

+0

@jdoe: Добро пожаловать :) –

Смежные вопросы