Ефективне використання JMESPath для отримання значень за ключами в списку

Ефективне використання JMESPath для отримання значень за ключами в списку

3 Березня 2024 в 14:15 24

Задача:

При роботі з даними часто виникає потреба отримати значення за певними ключами зі списку. JMESPath – це потужний інструмент для фільтрації та обробки даних у JSON форматі. У цій статті ми розглянемо, як ефективно використовувати JMESPath для вирішення цієї задачі на прикладі.

Для початку, давайте розглянемо вихідну задачу. Ми маємо наступні дані:

Та список ключів, за якими ми хочемо отримати значення:

Наша мета – отримати такий результат:

Спроба використати вираз map(*.@, ["b", "c"]) не дає нам очікуваних результатів. Давайте розберемося, як вирішити цю задачу з використанням JMESPath.

Використання JMESPath для отримання значень за ключами

Для початку, розглянемо простий приклад використання JMESPath для отримання значення за певним ключем. Для цього ми можемо використати оператор “dot” в JMESPath, що дозволяє звертатися до значень за ключами.

Наприклад, якщо ми хочемо отримати значення, що відповідає ключу “b” у наших даних, ми можемо використати вираз:

Це дозволить нам отримати значення “bar” із наших даних.

Використання функції map

Тепер давайте розглянемо, як використовувати функцію map у JMESPath для отримання значень за списком ключів.

Функція map дозволяє застосовувати вираз до кожного елемента списку. У нашому випадку, ми хочемо отримати значення за кожним ключем зі списку. Ми можемо скористатися функцією map разом з оператором “dot”, щоб отримати значення за кожним ключем зі списку.

У нашому випадку, ми хочемо отримати значення за ключами “b” та “c”. Тому наш вираз буде наступним:

Цей вираз дозволить нам отримати список значень за ключами “b” та “c” із наших даних.

Заключення

JMESPath є потужним інструментом для роботи з JSON даними, який дозволяє здійснювати різноманітні операції фільтрації та обробки даних. У цій статті ми розглянули, як ефективно використовувати JMESPath для отримання значень за ключами в списку. Цей інструмент може бути особливо корисним при обробці великих обсягів даних, де потрібно здійснювати швидкий та ефективний пошук та фільтрацію.