From 79e703a7ef7dff33f6f147c2eb95e10ee8df4e17 Mon Sep 17 00:00:00 2001 From: springcomp Date: Fri, 28 Oct 2022 10:01:02 +0200 Subject: [PATCH] learned to handle values. --- jmespath/visitor.py | 6 ++---- tests/compliance/pipe.json | 4 ++++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/jmespath/visitor.py b/jmespath/visitor.py index 15fb1774..b02e0f23 100644 --- a/jmespath/visitor.py +++ b/jmespath/visitor.py @@ -129,6 +129,8 @@ def visit_subexpression(self, node, value): result = value for node in node['children']: result = self.visit(node, result) + if (result is None): + return None return result def visit_field(self, node, value): @@ -228,16 +230,12 @@ def visit_literal(self, node, value): return node['value'] def visit_multi_select_dict(self, node, value): - if value is None: - return None collected = self._dict_cls() for child in node['children']: collected[child['value']] = self.visit(child, value) return collected def visit_multi_select_list(self, node, value): - if value is None: - return None collected = [] for child in node['children']: collected.append(self.visit(child, value)) diff --git a/tests/compliance/pipe.json b/tests/compliance/pipe.json index b10c0a49..3f1f15d9 100644 --- a/tests/compliance/pipe.json +++ b/tests/compliance/pipe.json @@ -126,6 +126,10 @@ { "expression": "foo[*].bar[*] | [0][0]", "result": {"baz": "one"} + }, + { + "expression": "`null`|[@]", + "result": [ null ] } ] }]