I am facing an issue with phasing data using jsonpath-ng. My expression looks like $..[?(@.name=='is_literate')]. I tried it at https://jsonpath.com/, it works fine with $..[?(@.name=='is_literate')] expression, but when I tried the given expression with jsonpath-ng, it throws an error. My Python Code looks like following: from jsonpath_ng.ext import parse exp = "$..[?(@.name=='is_literate')]" filter_query = parse(exp) filtered_data = [match.value for match in filter_query.find(label_data)] print(filtered_data) The Error Looks Like --------------------------------------------------------------------------- JsonPathParserError Traceback (most recent call last) Cell In[31], line 3 1 from jsonpath_ng.ext import parse 2 exp = "$..[?(@.name=='is_literate')]" ----> 3 filter_query = parse(exp) 4 filtered_data = [match.value for match in filter_query.find(label_data)] 5 print(filtered_data) File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/jsonpath_ng/ext/parser.py:176, in parse(path, debug) 175 def parse(path, debug=False): --> 176 return ExtentedJsonPathParser(debug=debug).parse(path) File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/jsonpath_ng/parser.py:58, in JsonPathParser.parse(self, string, lexer) 56 def parse(self, string, lexer = None): 57 lexer = lexer or self.lexer_class() ---> 58 return self.parse_token_stream(lexer.tokenize(string)) File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/jsonpath_ng/parser.py:61, in JsonPathParser.parse_token_stream(self, token_iterator) 60 def parse_token_stream(self, token_iterator): ---> 61 return self.parser.parse(lexer = IteratorToTokenStream(token_iterator)) File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/ply/yacc.py:333, in LRParser.parse(self, input, lexer, debug, tracking, tokenfunc) 331 return self.parseopt(input, lexer, debug, tracking, tokenfunc) 332 else: --> 333 return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc) File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/ply/yacc.py:1201, in LRParser.parseopt_notrack(self, input, lexer, debug, tracking, tokenfunc) 1199 errtoken.lexer = lexer 1200 self.state = state -> 1201 tok = call_errorfunc(self.errorfunc, errtoken, self) 1202 if self.errorok: 1203 # User must have done some kind of panic 1204 # mode recovery on their own. The 1205 # returned token is the next lookahead 1206 lookahead = tok File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/ply/yacc.py:192, in call_errorfunc(errorfunc, token, parser) 190 _token = parser.token 191 _restart = parser.restart --> 192 r = errorfunc(token) 193 try: 194 del _errok, _token, _restart File ~/Desktop/mstech/Digital_Profile/data_haneling/venv/lib/python3.12/site-packages/jsonpath_ng/parser.py:78, in JsonPathParser.p_error(self, t) 76 if t is None: 77 raise JsonPathParserError('Parse error near the end of string!') ---> 78 raise JsonPathParserError('Parse error at %s:%s near token %s (%s)' 79 % (t.lineno, t.col, t.value, t.type)) JsonPathParserError: Parse error at 1:4 near token ? (?) I want following output while using $..[?(@.name=='is_literate')] [ { "control": { "appearance": "quick" }, "children": [ { "name": "is_literate_1", "label": "साक्षर" }, { "name": "is_literate_0", "label": "निरक्षर" } ], "name": "is_literate", "label": "${full_name}: साक्षर कि निरक्षर ?", "bind": { "required": "true" }, "type": "select one" } ] Note: I have the name of the label, but I don't have label. I need the label based on the name value. I am attaching the JSON file for reference. I would appreciate it if someone could resolve this issue. Thank You. JSON File URL: https://github.com/user-attachments/files/21955956/form_label_output.json Continue reading...