使用the Python jmespath library,如何区分“匹配表达式,值为None”与“未能匹配表达式”?

jmespath.search函数在两种不同的情况下返回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'


在这两种不同的情况下,似乎JMESPath搜索API返回None。呼叫者如何知道它们之间的区别?

最佳答案

当前看来,无法区分匹配失败与返回None的成功。

有一个open issue requesting that this should change,但是现在答案显然是“您不能使用jmespath来做到这一点”。

关于python - 在JMESPath中检测匹配失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40210934/

10-09 04:39