h2non / jsonpath-ng

Finally, a JSONPath implementation for Python that aims to be standard compliant. That's all. Enjoy!
Apache License 2.0
572 stars 85 forks source link

filter not working #90

Closed J1A-T13N closed 2 years ago

J1A-T13N commented 2 years ago

Online Evaluator test is working

using Online Evaluator jsonpath herokuapp com_

But my code not working, Any one knows what happened?

code

import xmltodict, json
from jsonpath_ng import jsonpath
from jsonpath_ng.ext import parse as jsonPathParse
from urllib import parse as urlParse

def application(environ, start_response):
    jsonpath_expression = jsonPathParse('$.alert.info.area[?(@.geocode.value =~ "/10009|1000912|1000909|1000904/")]..areaDesc')
    jsonpath_match = jsonpath_expression.find(jsonData)
    print(jsonpath_match)

expression (jsonpath_expression )

$.alert.info.area[?(@.geocode.value=~/10014|1001416/)]..areaDesc

json (jsonData)

{"alert": {"@xmlns": "urn:oasis:names:tc:emergency:cap:1.2", "identifier": "CWB-Weather_strong-wind_202110101525001", "sender": "weather@cwb.gov.tw", "sent": "2021-10-10T15:44:31+08:00", "status": "Actual", "msgType": "Update", "scope": "Public", "references": "weather@cwb.gov.tw,CWB-Weather_strong-wind_202110101025001,2021-10-10T10:30:30+08:00 weather@cwb.gov.tw,CWB-Weather_strong-wind_202110100420002,2021-10-10T04:47:10+08:00 weather@cwb.gov.tw,CWB-Weather_strong-wind_202110100420001,2021-10-10T04:45:44+08:00", "info": {"language": "zh-TW", "category": "Met", "event": "\u5f37\u98a8", "responseType": "Monitor", "urgency": "Future", "severity": "Moderate", "certainty": "Likely", "eventCode": {"valueName": "profile:CAP-TWP:Event:1.0", "value": "strongWind"}, "effective": "2021-10-10T15:25:00+08:00", "onset": "2021-10-10T15:26:00+08:00", "expires": "2021-10-12T14:00:00+08:00", "senderName": "\u4e2d\u592e\u6c23\u8c61\u5c40", "headline": "\u9678\u4e0a\u5f37\u98a8\u7279\u5831", "description": "\uff11\uff18\u865f\u98b1\u98a8\u5916\u570d\u74b0\u6d41\u5f71\u97ff\uff0c\u660e\uff08\uff11\uff11\uff09\u65e5\u81fa\u5357\u4ee5\u5317\u3001\u6771\u534a\u90e8(\u542b\u862d\u5dbc\u3001\u7da0\u5cf6)\u3001\u6046\u6625\u534a\u5cf6\u3001\u6f8e\u6e56\u3001\u91d1\u9580\u3001\u99ac\u7956\u6cbf\u6d77\u53ca\u7a7a\u66e0\u5730\u5340\u5c07\u6709\uff19\u81f3\uff11\uff12\u7d1a\u5f37\u9663\u98a8\uff0c\u5167\u9678\u5730\u5340\u53ca\u5176\u4ed6\u6cbf\u6d77\u7a7a\u66e0\u5730\u5340\u4ea6\u6709\u8f03\u5f37\u9663\u98a8\uff0c\u9130\u8fd1\u6d77\u57df\u98a8\u6d6a\u660e\u986f\u504f\u5927\uff1b\u4eca\uff08\uff11\uff10\uff09\u65e5\u6843\u5712\u4ee5\u5317\u3001\u6771\u5357\u90e8(\u542b\u862d\u5dbc\u3001\u7da0\u5cf6)\u3001\u6046\u6625\u534a\u5cf6\u6cbf\u6d77\u7a7a\u66e0\u5730\u5340\u53ca\u91d1\u9580\u3001\u99ac\u7956\u6613\u6709\uff18\u81f3\uff19\u7d1a\u5f37\u9663\u98a8\u3002", "web": "https://www.cwb.gov.tw/V8/C/P/Warning/FIFOWS.html", "parameter": [{"valueName": "alert_title", "value": "\u9678\u4e0a\u5f37\u98a8\u7279\u5831"}, {"valueName": "alert_color", "value": "\u9ec3\u8272"}, {"valueName": "website_color", "value": "255,255,0"}], "area": [{"areaDesc": "\u65b0\u5317\u5e02\u77f3\u9580\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6502200"}}, {"areaDesc": "\u65b0\u5317\u5e02\u4e09\u829d\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6502100"}}, {"areaDesc": "\u65b0\u5317\u5e02\u91d1\u5c71\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6502700"}}, {"areaDesc": "\u65b0\u5317\u5e02\u6de1\u6c34\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6501000"}}, {"areaDesc": "\u65b0\u5317\u5e02\u842c\u91cc\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6502800"}}, {"areaDesc": "\u65b0\u5317\u5e02\u745e\u82b3\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6501200"}}, {"areaDesc": "\u65b0\u5317\u5e02\u96d9\u6eaa\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6502500"}}, {"areaDesc": "\u65b0\u5317\u5e02\u8ca2\u5bee\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "6502600"}}, {"areaDesc": "\u57fa\u9686\u5e02\u5b89\u6a02\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001706"}}, {"areaDesc": "\u57fa\u9686\u5e02\u4e2d\u5c71\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001705"}}, {"areaDesc": "\u57fa\u9686\u5e02\u4e2d\u6b63\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001701"}}, {"areaDesc": "\u57fa\u9686\u5e02\u4e03\u5835\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001702"}}, {"areaDesc": "\u57fa\u9686\u5e02\u4fe1\u7fa9\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001707"}}, {"areaDesc": "\u57fa\u9686\u5e02\u4ec1\u611b\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001704"}}, {"areaDesc": "\u57fa\u9686\u5e02\u6696\u6696\u5340", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001703"}}, {"areaDesc": "\u65b0\u5317\u5e02", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "65"}}, {"areaDesc": "\u6843\u5712\u5e02", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "68"}}, {"areaDesc": "\u65b0\u7af9\u5e02", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10018"}}, {"areaDesc": "\u65b0\u7af9\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10004"}}, {"areaDesc": "\u82d7\u6817\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10005"}}, {"areaDesc": "\u81fa\u4e2d\u5e02", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "66"}}, {"areaDesc": "\u5f70\u5316\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10007"}}, {"areaDesc": "\u96f2\u6797\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10009"}}, {"areaDesc": "\u5609\u7fa9\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10010"}}, {"areaDesc": "\u81fa\u5357\u5e02", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "67"}}, {"areaDesc": "\u5c4f\u6771\u7e23\u7261\u4e39\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001333"}}, {"areaDesc": "\u5c4f\u6771\u7e23\u6eff\u5dde\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001324"}}, {"areaDesc": "\u5c4f\u6771\u7e23\u8eca\u57ce\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001323"}}, {"areaDesc": "\u5c4f\u6771\u7e23\u6046\u6625\u93ae", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001304"}}, {"areaDesc": "\u5c4f\u6771\u7e23\u7345\u5b50\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001332"}}, {"areaDesc": "\u5c4f\u6771\u7e23\u678b\u5c71\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001325"}}, {"areaDesc": "\u5b9c\u862d\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10002"}}, {"areaDesc": "\u82b1\u84ee\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10015"}}, {"areaDesc": "\u81fa\u6771\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10014"}}, {"areaDesc": "\u81fa\u6771\u7e23\u862d\u5dbc\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001416"}}, {"areaDesc": "\u81fa\u6771\u7e23\u7da0\u5cf6\u9109", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "1001411"}}, {"areaDesc": "\u6f8e\u6e56\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "10016"}}, {"areaDesc": "\u91d1\u9580\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "09020"}}, {"areaDesc": "\u9023\u6c5f\u7e23", "geocode": {"valueName": "Taiwan_Geocode_103", "value": "09007"}}]}}}

J1A-T13N commented 2 years ago

Is working!

expression (jsonpath_expression )

$.alert.info.area[?(@.geocode.value=~"^10014$|1001416")]..areaDesc

Hope it helps everyone :')