informatique:jq
Ceci est une ancienne révision du document !
Table des matières
jq
- Pour faire des requêtes en ligne : https://jqplay.org
Play with jq
members.json
:
[ { "member_id": 123, "loans":[ { "date": "123", "media": [ { "title": "foo" }, { "title": "bar" } ] }, { "date": "456", "media": [ { "title": "foo" } ] } ] }, { "member_id": 456, "loans":[ { "date": "789", "media": [ { "title": "foo"} ] } ] } ]
Howto count occurrence of "grouped by key" with jq?
Sans group_by
No need to use group_by
→ https://stackoverflow.com/questions/69423726/howto-count-occurrence-of-grouped-by-key-with-jq/69423860#69423860
jq '"foo" as $title | .[] | {
id: .member_id,
$title,
count: [.loans[].media[] | select(.title == $title)] | length
}' members.json
{ "id": 123, "title": "foo", "count": 2 } { "id": 456, "title": "foo", "count": 1 }
Avec group_by
jq 'map(
(.member_id) as $m
| .loans[].media[]
| select(.title=="foo")
| {id: $m, title: .title}
)
|group_by(.id)[]
|.[0] + { count: length }
' members.json
informatique/jq.1633260419.txt.gz · Dernière modification : 03/10/2021 13:26 de cyrille