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

问题描述 投票:0回答:2

我正在尝试读取一个大的 json 数据结构,我收到消息:

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

我使用的命令是下一个:

n_rules=$(echo rulebase_list | jq '.total')

并且该文件在第一个层次结构级别中有一个变量,即

"total" : 126

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

json jq
2个回答
15
投票

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

您传递给

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

您可能想要的是将

jq
文件的内容发送到
rulebase_list
,执行此操作的工具是
cat
:

n_rules=$(cat rulebase_list | jq '.total')

另一种方法(更快)是从文件中重定向

jq
的输入:

n_rules=$(jq '.total' < rulebase_list)

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

jq
:

n_rules=$(jq '.total' rulebase_list)

了解更多关于

jq
的信息:https://jqlang.github.io/jq/manual/


3
投票

您忘记在脚本中包含

$
。添加它,它就会被修复。

n_rules=$(echo $rulebase_list | jq '.total')
© www.soinside.com 2019 - 2024. All rights reserved.