Здравствуйте, пользователи и эксперты jq,
К вашему сведению, этот вопрос связан с условным объединением двух списков в объекте . Но текущий вопрос - это объединение с двумя списками с условием соединения, включая проверку длины.
Для данных json:
{
"image_files": [
{
"id": "img_0001",
"width": 32,
"heigt": 32,
"file_name": "img_0001.png"
},
{
"id": "img_0002",
"width": 128,
"heigt": 32,
"file_name": "img_0002.png"
},
{
"id": "img_0003",
"width": 32,
"heigt": 32,
"file_name": "img_0003.png"
},
{
"id": "img_0004",
"width": 160,
"heigt": 32,
"file_name": "img_0004.png"
}
],
"annotations": [
{
"id": "ann_0001",
"image_id": "img_0001",
"label": "A",
"attributes": {
"type": "letter",
"augmented": false
}
},
{
"id": "ann_0002",
"image_id": "img_0002",
"label": "Good",
"attributes": {
"type": "word",
"augmented": false
}
},
{
"id": "ann_0003",
"image_id": "img_0003",
"label": "C",
"attributes": {
"type": "letter",
"augmented": false
}
},
{
"id": "ann_0004",
"image_id": "img_0004",
"label": "Hello",
"attributes": {
"type": "word",
"augmented": false
}
}
]
}
image_id
в annotations
list является своего рода внешним ключом, ссылающимся на id
в списке image_files
.
Мой вопрос заключается в том, как объединить image_files
и annotations
с условием соединения
- annotations.attributes.type == "word" AND
- annotations.label 'length == 4.
Окончательный результат должен быть следующим:
{
"four_letter_word_image_files_with_label": [
{
"id": "img_0002",
"width": 128,
"heigt": 32,
"file_name": "img_0004.png"
"label": "Good"
}
]
}
How can I produce above result from the json data input?
Thanks for your reading.