Wie man ungültige jsonlines mit jq filtert

Bei der Verwendung von jsonlines-Daten mit jq können ungültige Zeilen Parsing-Fehler verursachen, z.B.

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

Um ungültige Zeilen herauszufiltern, können Sie den folgenden Befehl verwenden:

filter_invalid_jsonlines.sh
jq -R 'fromjson?'

Dies leitet gültige JSON-Zeilen weiter und gibt null für ungültige zurück. Sie können dann die null-Werte mit select herausfiltern. Der nachfolgende Befehl muss null-Werte korrekt behandeln, wird aber keine ungültigen Zeilen sehen.

Beispielverwendung

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

Check out similar posts by category: JSON