在 JMESPath 中检测匹配失败
Detect match failure in JMESPath
使用the Python jmespath
library,如何区分“匹配表达式,值为None
”与“匹配表达式失败”?
jmespath.search
函数 returns None
在两种不同的情况下:
>>> import jmespath
>>> foo = {'bar': {'lorem': 13, 'ipsum': None}}
>>> repr(jmespath.search('bar.lorem', foo))
'13'
>>> repr(jmespath.search('bar.ipsum', foo)) # Path matches, value None
'None'
>>> repr(jmespath.search('dolor', foo)) # Path does not match
'None'
在这两种不同的情况下 API returns None
出现了 JMESPath 搜索 。调用者如何知道它们之间的区别?
目前看来无法区分匹配失败与returns None
.
匹配成功
有一个 open issue requesting that this should change 但现在答案显然是“你不能用 jmespath
做到这一点”。
使用the Python jmespath
library,如何区分“匹配表达式,值为None
”与“匹配表达式失败”?
jmespath.search
函数 returns None
在两种不同的情况下:
>>> import jmespath
>>> foo = {'bar': {'lorem': 13, 'ipsum': None}}
>>> repr(jmespath.search('bar.lorem', foo))
'13'
>>> repr(jmespath.search('bar.ipsum', foo)) # Path matches, value None
'None'
>>> repr(jmespath.search('dolor', foo)) # Path does not match
'None'
在这两种不同的情况下 API returns None
出现了 JMESPath 搜索 。调用者如何知道它们之间的区别?
目前看来无法区分匹配失败与returns None
.
有一个 open issue requesting that this should change 但现在答案显然是“你不能用 jmespath
做到这一点”。