【Python】自动化测试系列之-细节-JsonPath模块

JsonPath 模块安装与介绍

JsonPath: 是一个根据路径定位json中数据的工具, 可以说JsonPath是json中的XPATH

安装方法:pip install jsonpath
官方文档:http://goessner.net/articles/JsonPath

 

 JsonPath与XPath语法对比:

JSONPath描述
$ 根节点
@ 现行节点
.or[] 取子节点
.. 就是不管位置,选择所有符合条件的节点
* 匹配所有元素节点
[] 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
[,] 支持迭代器中做多选。
?() 支持过滤操作.
() 支持表达式计算

 

xpath描述
nodename 选中该元素。
/ 从根节点选取、或者是元素和元素间的过渡。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。
text() 选取文本。

 

xpath 通配符描述
* 匹配任何元素节点。
@* 匹配任何属性节点。
node() 匹配任何类型的节点。

 

Python之isonpath的使用

import json
import jsonpath
import requests
url="https://www.lagou.com/lbs/getAllCitySearchLabels.json"
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"}
 
html=requests.get(url,headers=headers).text
#把json形式的字符串转换成python格式
unicodestr=json.loads(html)
#利用jsonpath按照指定格式取出内容
city_list=jsonpath.jsonpath(unicodestr,"$..name")
#把python形式的字符串转换成json格式用dumps
#禁用ascii编码格式,返回unicode字符串,方便使用
city_array=json.dumps(city_list,ensure_ascii=False)
with open("lagoucity.json","w") as f:
    f.write(city_array.encode("utf-8"))

 

待续

 

posted @ 2019-02-01 14:21  念槐聚  阅读(124)  评论(0)    收藏  举报