jmespath сглаживает несколько значений хэша

В идеале я хочу написать запрос, который возвращает вывод плоского списка: ["abc", "bcd", "cde", "def"] из следующего примера JSON:

{
  "l_l": [
    [1,2,3],
    [4,5,6]
  ],
  "l_h_l": [
    { "n": [10,2,3] },
    { "n": [4,5,60] }
  ],
  "l_h_m": [
    {
      "n": {
        "1234": "abc",
        "2345": "bcd"
      }
    }, {
      "n": {
        "3456": "cde",
        "4567": "def"
      }
    }
  ]
}

Ближайшее, что я могу найти, - это l_h_m[].n.*, который возвращает нужное мне содержимое в виде несогласованного списка списков:

[
  [
    "abc",
    "bcd"
  ],
  [
    "cde",
    "def"
  ]
]

jmespath позволяет сглаживать списки списков. Запросы l_l[] и l_h_l[].n[] возвращали плоские результаты, если исходный json структурирован таким образом.


person clay    schedule 13.10.2017    source источник


Ответы (1)


Похоже, вашему решению просто потребовался еще один оператор развертки.

l_h_m[].n.*[]

возвращается

[
  "abc",
  "bcd",
  "cde",
  "def"
]
person Peter Dolberg    schedule 03.11.2017