解析错误:EOF的无效数字文字在第1行的第10897列

时间:2019-10-21 07:52:08

标签: linux bash jq

我想通过jq处理以下格式的数据:

{
  "data": [
    {
      "valueX": 11111,
      "valueY": 11111,
    },
    {
      "valueX": 2222,
      "valueY": 2222,
    }
    ...,
    {
      "valueX": 2222,
      "valueY": 2222,
    }
    ],
  "meaningless_data": "x"
}

我要遍历“ data”部分中的数据,其中有100套数据。我写了以下内容,我将所有内容保存到${input}中,并希望打印出valueX。我可以打印出回声部分,但仍然看到很多parse error: Invalid numeric literal at EOF。我该如何解决?

for row in $(echo "${input}" | jq -r '.[] | @base64'); do
    _jq() {
     echo ${row} | base64 --decode | jq -r ${1}
    }

    for i in {0..100}; do
        echo "Printing valueX: "$(_jq '.['"${i}"'].valueX')" . "
    done

done

1 个答案:

答案 0 :(得分:0)

要修复伪JSON,可以使用诸如https://hjson.org/之类的工具。有关更多详细信息和其他选项,请参见jq常见问题解答:https://github.com/stedolan/jq/wiki/FAQ