sileht / python-jsonpath-rw-ext

Extensions for JSONPath RW
Apache License 2.0
59 stars 19 forks source link

Custom filter not working #22

Open Saravana9210 opened 5 years ago

Saravana9210 commented 5 years ago

I'm trying to fetch all ICs from the json where someId=gbhi78. But, I'm getting following error:

File "/Users/saravanakumar/PycharmProjects/MyFirstPythonProject/venv/lib/python3.7/site-packages/jsonpath_rw/parser.py", line 55, in parse_token_stream return new_parser.parse(lexer = IteratorToTokenStream(token_iterator)) File "/Users/saravanakumar/PycharmProjects/MyFirstPythonProject/venv/lib/python3.7/site-packages/ply/yacc.py", line 333, in parse return self.parseopt_notrack(input, lexer, debug, tracking, tokenfunc) File "/Users/saravanakumar/PycharmProjects/MyFirstPythonProject/venv/lib/python3.7/site-packages/ply/yacc.py", line 1201, in parseopt_notrack tok = call_errorfunc(self.errorfunc, errtoken, self) File "/Users/saravanakumar/PycharmProjects/MyFirstPythonProject/venv/lib/python3.7/site-packages/ply/yacc.py", line 192, in call_errorfunc r = errorfunc(token) File "/Users/saravanakumar/PycharmProjects/MyFirstPythonProject/venv/lib/python3.7/site-packages/jsonpath_rw/parser.py", line 69, in p_error raise Exception('Parse error at %s:%s near token %s (%s)' % (t.lineno, t.col, t.value, t.type)) Exception: Parse error at 1:3 near token ? (?)

filter: *$..[?(@someId == 'gbhj78')].ICs[]**

Json: [ { "someId": "gbhj78", "submitTime": "2018-12-26T00:00:00+08:00", "ModifiedTime": "2018-12-31T23:59:59+08:00", "delivered": false, "status": "success", "ICs": [ { "id": "145gT-uhyh89", "tempId": 1, "submitTime": "2018-12-26T00:00:00+08:00", "ModifiedTime": "2018-12-31T23:59:59+08:00", "status": "success", "downloadUrl": "https://abcd.com/resourceFiles" }, { "id": "145gT", "tempId": 1, "submitTime": "2018-12-26T00:00:00+08:00", "ModifiedTime": "2018-12-31T23:59:59+08:00", "status": "success", "downloadUrl": "https://abcd.com/resourceFiles" } ] } ]

Saravana9210 commented 5 years ago

I also tried with = instead of ==, still no luck

$..[?(@someId = 'gbhj78')].ICs[*] $..[?(@someId ~ 'gbhj78')].ICs[*] *_$..[?(@.someId = 'gbhj78')].ICs[]_**

LegendOfGIT commented 4 years ago

Same here. I added this extension to apply json path filters.

What's going on?

Ok. I see you're using jsonpath_rw instead of jsonpath_rw_ext. Your issue belongs to the wrong package.

The thing is I'm getting the same exception when I'm using the package jsonpath_rw_ext

rambhupala-merla commented 1 year ago

I am also facing same issue with custom filter.