建设公司网站,网络技术培训,建筑网建设通网站作用,5ucms怎样做网站自适应XPath JSONPath 描述 / $ 根节点 . 当前节点 / .or[] 取子节点 .. n/a 取父节点,Jsonpath未支持 // .. 就是不管位置,选择所有符合条件的条件 * * 匹配所有元素节点 n/a 根据属性访问,Json不支持,因为Js…
XPath | JSONPath | 描述 |
/ | $ | 根节点 |
. | @ | 当前节点 |
/ | .or[] | 取子节点 |
.. | n/a | 取父节点,Jsonpath未支持 |
// | .. | 就是不管位置,选择所有符合条件的条件 |
* | * | 匹配所有元素节点 |
@ | n/a | 根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要。 |
[] | [] | 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等) |
| | [,] | 支持迭代器中做多选。 |
[] | ?() | 支持过滤操作. |
n/a | () | 支持表达式计算 |
() | n/a | 分组,JsonPath不支持 |
import json
import jsonpath
import requestsurl = 'http://www.lagou.com/lbs/getAllCitySearchLabels.json'
html = requests.get(url)
js = json.loads(html.text)
print(js)# A 下面的节点
jp = jsonpath.jsonpath(js,'$..A.*')
print(jp)# A 下面节点的name
jp = jsonpath.jsonpath(js,'$..A.*.name')
print(jp)# C 下面节点的name
jp = jsonpath.jsonpath(js,'$..C..name')
print(jp)# C 下面节点的第二个
jp = jsonpath.jsonpath(js,'$..C[1]')
print(jp)# C 下面节点的第二个的name
jp = jsonpath.jsonpath(js,'$..C[1].name')
print(jp)# C 下面节点的2到5的name
jp = jsonpath.jsonpath(js,'$..C[1:5].name')
print(jp)# C 下面节点最后一个的name
jp = jsonpath.jsonpath(js,'$..C[(@.length-1)].name')
print(jp)