我正在尝试读取一个大的 json 数据结构,我收到消息:
解析错误:第 2 行第 0 列的数字文字无效
我使用的命令是下一个:
n_rules=$(echo rulebase_list | jq '.total')
并且该文件在第一个层次结构级别中有一个变量,即
"total" : 126
你知道为什么我会遇到问题吗? 我想问题是 126 是一个数值,但我能做什么?
根据您在问题中发布的脚本仔细检查您的脚本。如果它们匹配,那么答案就很简单了。
您传递给
"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/
您忘记在脚本中包含
$
。添加它,它就会被修复。
n_rules=$(echo $rulebase_list | jq '.total')