问题描述
我想获取pretaxCost > 0
数据,但是遇到如下问题:
我的JMESPath
[?pretaxCost.to_number(@) > 0]
演示数据:
[
{
"pretaxCost": "7.19999999999999962124684594298729134465020251809619367122650146484375E-8","instanceName": "demo202009210002"
},{
"pretaxCost": "0","instanceName": "demo20092701"
},{
"pretaxCost": "0.2399999999999999911182158029987476766109466552734375","instanceName": "demo965546464"
},{
"pretaxCost": "0.06278620880000000681331329133172403089702129364013671875","instanceName": "weihanacrdemo"
},{
"pretaxCost": "2.16000000000000001872295179138061538282045148662291467189788818359375E-7","instanceName": "092d02d45a464c1291715701"
}
]
jmespath.min.js:2 Uncaught ParserError: Invalid token (Number): "0"
我想过的事情:
我认为pretaxCost是字符串类型,所以我必须将类型转换为数字,因此我使用to_number
函数,然后使用表达式 > 0
获得我期望的结果,但这是行不通的。
,我尝试仅选择pretaxCost to_number的工作方式如下例所示:
JSFiddle - Code Playground
解决方法
我阅读了文档JMESPath Examples — JMESPath
我尝试使用下面的表达式,它起作用了
[?pretaxCost.to_number(@) > `0`]
系统必须使用
`number`