Я пытаюсь отфильтровать массив JSON на основе значения, содержащегося в каждом из массивов. При условии некоторого пользовательского ввода, я только хочу вернуть соответствующие значения в зависимости от типа.
Образец JSON:
{
"routes": [
{
"name": "Golden Shower",
"type": "Boulder",
"rating": "V5",
"stars": 5,
"starVotes": 131,
"pitches": ""
},
{
"name": "Girls Only",
"type": "Sport",
"rating": "5.10a",
"stars": 4.9,
"starVotes": 156,
"pitches": "1"
}
],
"success": 1
}
Я попытался использовать несколько вариантов примера кода, приведенного для аналогичного вопроса, но столкнулся с проблемами из-за немного более сложной структуры данных. Смотрите: как фильтровать массив json в python
Я пробовал несколько вариантов кода. Все ошибки связаны с неправильным использованием индексов. Некоторые вещи, которые я пробовал.
routeData = routesByGpsResp.json()
input_dict = routeData
output_dict = [x for x in input_dict if x['type'] == 'Sport']
ошибка: индексы могут быть целыми числами
output_dict = [x for x in input_dict.items() if ['routes'][x]['type'] == 'Sport']
ошибка: списочные индексы должны быть целыми или кусочками, а не кортежем
Мне удалось напечатать список названий маршрутов, использующих для указания индекса, но, похоже, не могу понять это для понимания списка.
for key in range(len(routeData['routes'])):
print(routeData['routes'][key]['name'])
Является ли понимание списка неправильным путем? Должен ли я вместо этого использовать оператор for?
Любая помощь приветствуется!