Jak filtrovat neplatné jsonlines pomocí jq

Při použití jsonlines dat s jq mohou neplatné řádky způsobit chyby parsování, např.

e.g
jq: parse error: Expected separator between values at line 61755, column 1954

Pro odfiltrování neplatných řádků můžete použít následující příkaz:

filter_invalid_jsonlines.sh
jq -R 'fromjson?'

To propustí platné JSON řádky a vrátí null pro neplatné. Poté můžete odfiltrovat null hodnoty pomocí select. Následný příkaz potřebuje správně zpracovat null hodnoty, ale neuvidí žádné neplatné řádky.

Příklad použití

filter_and_process_jsonlines.sh
cat data.json | jq -R 'fromjson?' | jq -c '{name: .node?.name?}'

Podívejte se na podobné články podle kategorie: JSON