已解决
JsonPath详解
来自网友在路上 136836提问 提问时间:2023-09-23 06:53:59阅读次数: 36
最佳答案 问答题库368位专家为你答疑解惑
JsonPath
简介
JsonPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具
文档
http://goessner.net/articles/JsonPath
安装
pip install jsonpath
使用
注意:这里的json_data为python数据,如列表,字典
data = jsonpath.jsonpath(json_data, 匹配规则)
语法
路径操作符
$ 根对象
. 选择当前层级的属性或数组元素
.. 选择所有符合条件的条件
* 通配符,匹配任意属性或数组元素
其余
@ 现行节点
n/a 取父节点,Jsonpath未支持
n/a 根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要。
[,] 支持迭代器中做多选。
?() 支持过滤操作.
() 支持表达式计算
n/a 分组,JsonPath不支持
基础示例
import jsonpathjson_dict_data = {"name": "John","age": 30,"cities": ["New York", "London"],"scores": {"math": 90,"english": 85,"science": 95},"isNullValue": None
}# 提取根对象下的 name 属性值
result_name = jsonpath.jsonpath(json_dict_data, "$.name")
print(result_name)# 提取根对象下 cities 数组的第一个元素
result = jsonpath.jsonpath(json_dict_data, "$.cities[0]")
print(result)# 提取根对象下 scores 对象的math属性值
result = jsonpath.jsonpath(json_dict_data, "$.scores.math")
print(result)
爬虫示例【urllib版】
import jsonimport jsonpath
from urllib.request import Request, urlopen
from fake_useragent import UserAgentdef cra1_1():url = 'http://xxx:8031/front/website/findAllTypes'headers = {'User-Agent': UserAgent().chrome}requests = Request(url, headers=headers)resp = urlopen(requests)result = json.loads(resp.read().decode())data1 = jsonpath.jsonpath(result, '$.code')print(data1)if __name__ == '__main__':cra1_1()
爬虫示例【requests版】
import jsonpath
from fake_useragent import UserAgent
import requestsdef cra1_1():url = 'http://xxx:8031/front/website/findAllTypes'headers = {'User-Agent': UserAgent().chrome}resp = requests.get(url, headers=headers)result = resp.json()code = jsonpath.jsonpath(result, '$.code')print(code)if __name__ == '__main__':cra1_1()
查看全文
99%的人还看了
相似问题
- SpringBoot使用ObjectMapper之Long和BigDemical类型的属性字符串处理,防止前端丢失数值精度
- 〖大前端 - 基础入门三大核心之JS篇㊲〗- DOM改变元素节点的css样式、HTML属性
- QT中样式表常见属性与颜色的设置与应用
- Java继承中的属性名相同但是类型不同的情况
- C#开发的OpenRA游戏之属性QuantizeFacingsFromSequence(7)
- XmlElement注解在Java的数组属性上,以产生多个相同的XML元素
- CSS-列表属性篇
- CSS 文本属性篇
- 计算属性与watch的区别,fetch与axios在vue中的异步请求,单文本组件使用,使用vite创建vue项目,组件的使用方法
- JAXB:用XmlElement注解复杂类型的Java属性,来产生多层嵌套的xml元素
猜你感兴趣
版权申明
本文"JsonPath详解":http://eshow365.cn/6-11966-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!