python3 JsonPath

JsonPath 与 XPath 语法对比:
Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法:

XPath JSONPath     描述
/    $  根节点
现行节点
/ .or[]  取子节点
..  n/a 取父节点,Jsonpath未支持
//  .. 就是不管位置,选择所有符合条件的条件
匹配所有元素节点
@ n/a 根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要。
[] [] 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
[,] 支持迭代器中做多选。
[] ?()  支持过滤操作.
n/a () 支持表达式计算
()   n/a  分组,JsonPath不支持

 

jsonpath 简单示例:

data1 = {'foo': [{'baz': 'news'}, {'baz': 'music'}]}
from jsonpath_rw import jsonpath,parse
jsonpath_exp = parse('foo[*].baz')
list_r = jsonpath_exp.find(data1)
for l in list_r:print(l.value)


data2 = {'foo': [{'baz': 'news2'}, {'baz': 'music2'}]}
import jsonpath
# list_r2 = jsonpath.jsonpath(data2,'$..baz') #也可以
list_r2 = jsonpath.jsonpath(data2,'foo[*].baz')
for l in list_r2:print(l)

输出:

news
music
news2
music2


 

你可能感兴趣的:(python)