解析错误:第 2 行第 0 列的数字文字无效

una*_*hez 5 json jq

我正在尝试读取大型 json 数据结构,但收到消息:

解析错误:第 2 行第 0 列的数字文字无效

我正在使用的命令是下一个:

n_rules=$(echo rulebase_list | jq '.total')
Run Code Online (Sandbox Code Playgroud)

并且该文件在第一层级中有一个变量,它是

"total" : 126
Run Code Online (Sandbox Code Playgroud)

你知道为什么我会遇到问题吗?我想问题是 126 是一个数值,但我能做什么?

axi*_*iac 5

根据您在问题中发布的脚本仔细检查您的脚本。如果它们匹配,那么答案很简单。

"total" : 126您传递给的字符串中没有,jq因为您传递给它的输出echo rulebase_listrulebase_list.

您可能想要的是发送到文件jq的内容,rulebase_list为此使用的工具是cat

n_rules=$(cat rulebase_list | jq '.total')
Run Code Online (Sandbox Code Playgroud)

或者(更快)是重定向jq来自文件的输入:

n_rules=$(jq '.total' < rulebase_list)
Run Code Online (Sandbox Code Playgroud)

或者将输入文件名指定为命令行中的最后一个参数jq

n_rules=$(jq '.total' rulebase_list)
Run Code Online (Sandbox Code Playgroud)

阅读更多关于jqhttps : //stedolan.github.io/jq/manual/