简介
JsonPath
就像Xpath
解析XML
一样去解析JSON, 通过JSON路径的方式去解析, 据小编了解到JsonPath
的性能不是很强, 如果用在频繁操作的地方需要谨慎
安装
pip install jsonpath
使用
import jsonpath
a = {
"store": {
"book": [
{
"title": "资治通鉴"
},
{
"title": "史记"
},
]
}
}
print(jsonpath.jsonpath(a, "$.store.book[0].title")) # ['资治通鉴']
print(jsonpath.jsonpath(a, "$['store']['book'][0]['title']")) # ['资治通鉴']
print(jsonpath.jsonpath(a, "$.store.book[(@.length-1)].title")) # ['史记']
标记介绍. XPath, JSONPath比较
XPath | JSONPath | 描述 |
---|---|---|
/ | $ | 根对象,元素 |
. | @ | 当前对象元素 |
/ | . or [] | 子运算符 |
… | 不适用 | 父运算符 |
* | * | 通配符 |
@ | 不适用 | 属性访问 |
[] | [] | 下标运算 |
| | [,] | 联合运算 |
不适用 | [start🔚sep] | 像是ES4一样来切片运算符 |
[] | ?() | 应用过滤表达式 |
不适用 | () | 脚本表达式,使用底层脚本引擎 |
() | 不适用 | Xpath中的分组 |
XPath 提供的内容比此处列出的要多得多(非缩写语法中的位置路径、运算符和函数)。此外,下标运算符在 Xpath 和 JSONPath 中的工作方式存在显着差异
XPath
表达式中的方括号始终作用于由前一个路径片段产生的节点集。索引总是从 1 开始。- 使用
JSONPath
方括号对前一个路径片段寻址的对象或数组进行操作。索引总是从 0 开始。