Поисковая функция на Python
всем привет! помогите, пожалуйста, написать функцию которая будет возвращать нужный id в зависимости от заданного значения flights
Есть такая структура:
res = {
"variants": [
{
"id": "0001",
"price": {
"amount": "4113"
},
"count": 7,
"coordinates": {
"x": 10,
"y": 50
},
"segments": [
{
"flights": [
"MOW"
]
}
],
"subvariants": []
},
{
"id": "0002",
"price": {
"amount": "6338"
},
"count": 4,
"coordinates": {
"x": 0,
"y": 12
},
"segments": [
{
"flights": [
"LED"
]
}
],
"subvariants": []
}
]
}
и хочу сделать при вызове main(res, "LED") что бы возвращалось 0002
Ответы (2 шт):
Автор решения: Oopss
→ Ссылка
import json
res = '''{
"variants": [
{
"id": "0001",
"price": {
"amount": "4113"
},
"count": 7,
"coordinates": {
"x": 10,
"y": 50
},
"segments": [
{
"flights": [
"MOW"
]
}
],
"subvariants": []
},
{
"id": "0002",
"price": {
"amount": "6338"
},
"count": 4,
"coordinates": {
"x": 0,
"y": 12
},
"segments": [
{
"flights": [
"LED"
]
}
],
"subvariants": []
}
]
}
'''
j=json.loads(res)
for el in j['variants']:
if el['segments'][0]['flights'][0]=='LED':
print(f'id {el["id"]}')
id 0002
Автор решения: Alexander Poleshchuk
→ Ссылка
def main(res, air):
for i in res['variants']:
if any(air in k['flights'] for k in i['segments']):
return i['id']