Como filtrar jsonlines inválidos usando jq
Ao usar dados jsonlines com jq, linhas inválidas podem causar erros de análise, ex.:
e.g
jq: parse error: Expected separator between values at line 61755, column 1954Para filtrar linhas inválidas, você pode usar o seguinte comando:
filter_invalid_jsonlines.sh
jq -R 'fromjson?'Isso passará adiante linhas JSON válidas e retornará null para linhas inválidas. Você pode então filtrar os valores null usando select. O comando subsequente precisa lidar com valores null corretamente, mas não verá nenhuma linha inválida.
Exemplo de uso
filter_and_process_jsonlines.sh
cat data.json | jq -R 'fromjson?' | jq -c '{name: .node?.name?}'Check out similar posts by category:
JSON
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow