Я изучал официальную документацию JMESPath и некоторых других ресурсов. Однако мне не удалось выполнить следующую задачу:
моя структура данных - это json из vimeo api (список видео): массив данных содержит множество объектов, каждый объект - это загруженный файл с множеством атрибутов и различными параметрами.
"data": [
{
"uri": "/videos/00001",
"name": "Video will be added.mp4",
"description": null,
"type": "video",
"link": "https://vimeo.com/00001",
"duration": 9,
"files":[
{
"quality": "hd",
"type": "video/mp4",
"width": 1440,
"height": 1440,
"link": "https://player.vimeo.com/external/4443333.sd.mp4",
"created_time": "2020-09-01T19:10:01+00:00",
"fps": 30,
"size": 10807854,
"md5": "643d9f18e0a63e0630da4ad85eecc7cb",
"public_name": "UHD 1440p",
"size_short": "10.31MB"
},
{
"quality": "sd",
"type": "video/mp4",
"width": 540,
"height": 540,
"link": "https://player.vimeo.com/external/44444444.sd.mp4",
"created_time": "2020-09-01T19:10:01+00:00",
"fps": 30,
"size": 1345793,
"md5": "cb568939bb7b276eb468d9474c1f63f6",
"public_name": "SD 540p",
"size_short": "1.28MB"
},
... other data
]
},
... other uploaded files
]
Фильтр, который мне нужно применить, заключается в том, что продолжительность должна быть меньше 10
, а ширина файла должна быть 540
, а результат должен содержать ссылку (URL-адрес) из файлов.
Мне удалось заставить работать только один из структурных уровней: data[].files[?width == '540'].link
Мне нужно извлечь такой список
[
{
"uri": "/videos/111111",
"link": "https://player.vimeo.com/external/4123112312.sd.mp4"
},
{
"uri": "/videos/22222",
"link": "https://player.vimeo.com/external/1231231231.sd.mp4"
},
...other data
]