JMESPpath:通过嵌套属性过滤掉
JMESPpath: filtering out by nested attributes
我正在尝试使用 JMESPath jp
(https://github.com/jmespath/jp) 实用程序应用过滤器。
我的目标是仅过滤掉状态为 'ADDED' 且具有特定设备 ID(例如 0000debf17cff54b
)的流。
我正在尝试这样的事情:
cat test | ./jp '[][?id=="of:00002259146f7743" && state=="ADDED"]'
但结果是 []
[
{
"flow": [
{
"ethType": "0x86dd",
"type": "ETH_TYPE"
},
{
"protocol": 58,
"type": "IP_PROTO"
},
{
"icmpv6Type": 135,
"type": "ICMPV6_TYPE"
}
],
"id": "of:00001aced404664b",
"state": "ADDED"
},
{
"flow": [
{
"ethType": "0x86dd",
"type": "ETH_TYPE"
},
{
"protocol": 58,
"type": "IP_PROTO"
},
{
"icmpv6Type": 136,
"type": "ICMPV6_TYPE"
}
],
"id": "of:0000debf17cff54b",
"state": "ADDED"
}
]
无需使用第一个 [],[?id=='of:0000debf17cff54b' && state=='ADDED']
即可。
使用第一个 []
给你整个数组,不包含 id
或 state
键。
我正在尝试使用 JMESPath jp
(https://github.com/jmespath/jp) 实用程序应用过滤器。
我的目标是仅过滤掉状态为 'ADDED' 且具有特定设备 ID(例如 0000debf17cff54b
)的流。
我正在尝试这样的事情:
cat test | ./jp '[][?id=="of:00002259146f7743" && state=="ADDED"]'
但结果是 []
[
{
"flow": [
{
"ethType": "0x86dd",
"type": "ETH_TYPE"
},
{
"protocol": 58,
"type": "IP_PROTO"
},
{
"icmpv6Type": 135,
"type": "ICMPV6_TYPE"
}
],
"id": "of:00001aced404664b",
"state": "ADDED"
},
{
"flow": [
{
"ethType": "0x86dd",
"type": "ETH_TYPE"
},
{
"protocol": 58,
"type": "IP_PROTO"
},
{
"icmpv6Type": 136,
"type": "ICMPV6_TYPE"
}
],
"id": "of:0000debf17cff54b",
"state": "ADDED"
}
]
无需使用第一个 [],[?id=='of:0000debf17cff54b' && state=='ADDED']
即可。
使用第一个 []
给你整个数组,不包含 id
或 state
键。