Jq ---Преобразование вложенного json в csv

Как прокомментировал pizdelect, вот решение:https://raw.githubusercontent.com/brgl/busybox/master/shell/cttyhack.c.

Я просто использую ::respawn:/bin/cttyhack /bin/sh.

-1
29.04.2021, 18:31
1 ответ

Предположим, что каждый dataэлемент имеет не более одного элемента в массиве .LIST.ID, чей nameравенUS:

jq -r <file '.data[] |
  [.name, (.LIST.ID[] | select(.name == "US").value)? // null ] |
  @csv'

Что он делает:

  1. возвращает (сохраняет )все элементы массива data;
  2. для каждого элемента dataсоздает массив из двух -элементов (, необходимый для форматирования CSV ), состоящий из :
    1. значение свойства nameкаждого элемента data;
    2. значение свойства valueэлемента массива .LIST.ID, у которого nameравно US, если есть (null, если нет; вы можете использовать ""вместо null, чтобы получить поле с двойными кавычками в выводе CSV вместо полностью пустого поля ); ?после выражения в скобках гарантирует отсутствие ошибок, даже если элементы .LISTили .IDполностью отсутствуют;
  3. отображает результирующий список массивов в виде данных CSV.
3
28.07.2021, 11:36

Теги

Похожие вопросы