Обнаружить ошибку совпадения в JMESPath
Использование Python jmespath
библиотека, как я могу различить "соответствует выражению, значение 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'
Похоже, API поиска JMESPath возвращает None
в этих двух разных случаях. Как звонящий может узнать разницу между ними?
1 ответ
Решение
В настоящее время кажется, что нет никакого способа отличить неудачу матча от успеха, который возвращается None
,
Существует открытая проблема, требующая, чтобы это изменилось, но на данный момент ответ очевидно: "Вы не можете сделать это с jmespath
".