Is there a way to return an integer or a string instead of None
?
I know that I can do an additional check like:
item = {"SX": {"BX": 1}}
value = jmespath.search("SX.BX", item) if jmespath.search("SX.BX", item) else 0
but the condition is very long and I would like to make it easier.
You can build that logic in your JMESPath query:
SX.BX || `0`
Given the empty JSON:
{}
Would yield you 0
, as you are excepting it.
So, you Python code becomes:
value = jmespath.search("SX.BX || `0`", item)