jq уплотняющий запрос перестановки подмассива - PullRequest
0 голосов
/ 12 марта 2020

Я намерен извлечь CSV со строкой для каждого элемента подмассива. Дан массив json с вложенным массивом. например, вот так:

[
  {
     "foo": 108, 
     "bar": ["a","b"]
  },
  {   
     "foo": 201, 
     "bar": ["c","d"]
  }
] 

Можно получить данные, используя промежуточный объект.

.[] | { "y": .foo,  "x": .bar[] }| [.y,.x]  | @csv

https://jqplay.org/s/922RlkbFNA

Но я бы хотел express в менее сложной форме. Однако следующее не работает :(:

.[] | [ (.foo,  .bar[]) ]  | @csv

PS: я изо всех сил пытаюсь найти подходящий заголовок

1 Ответ

1 голос
/ 12 марта 2020

В трех строках:

.[]
| [.foo] + (.bar[]|[.])
| @csv

или, может быть, менее смутно:

.[]
| .bar[] as $bar
| [.foo, $bar] 
| @csv
...