Json基本概念以及Dumps与Loads详见上篇文章,本篇文章主要记录下Jsonpath的详细使用。
Jsonpath是一种类似于 XPath 的查询语言,用于从 JSON 数据中提取数据。它支持多种操作符和内置函数,可以进行高级查询和过滤。
Jsonpath 是 Python 中的一个第三方库,用于从 JSON 数据中提取数据。它支持多种操作符和内置函数,可以进行高级查询和过滤。
以下是 JSONPath 的详细介绍:
使用pip命令安装jsonpath
# 使用pip命令安装jsonpath
pip install jsonpath
# 安装完成后,可以使用一下命令来导入jsonpath
from jsonpath import jsonpath
在 JSONPath 中,使用 $ 符号来表示根节点。以下是一些基本的查询语法:
以下是一些示例:
import json
from jsonpath import jsonpath
data = {
"bookstore": {
"book": [
{
"title": "Harry Potter",
"price": 29.99
},
{
"title": "The Alchemist",
"price": 12.99
}
]
}
}
# 选择根节点
jsonpath(data, "$")
# 选择书店名称
jsonpath(data, "$.bookstore")
# 选择第一本书的标题
jsonpath(data, "$.bookstore.book[0].title")
# 选择所有书的标题
jsonpath(data, "$.bookstore.book[*].title")
jsonpath(data, "$..title")
JSONPath 中支持以下操作符:
以下是一些示例:
import json
from jsonpath import jsonpath
data = {
"bookstore": {
"book": [
{
"title": "Harry Potter",
"price": 29.99
},
{
"title": "The Alchemist",
"price": 12.99
}
]
}
}
# 选择价格小于 20 的书的标题
jsonpath(data, "$.bookstore.book[?(@.price < 20)].title")
JSONPath 中支持使用 [] 进行过滤操作。以下是一些示例:
import json
from jsonpath import jsonpath
data = {
"bookstore": {
"book": [
{
"title": "Harry Potter",
"price": 29.99
},
{
"title": "The Alchemist",
"price": 12.99
}
]
}
}
# 选择第一本书和最后一本书的标题
jsonpath(data, "$.bookstore.book[0, -1].title")
# 选择价格最低的书的标题
jsonpath(data, "$.bookstore.book[(@.price == $.bookstore.book[*].price.min())].title")
JSONPath 中支持以下内置函数:
以下是一些示例:
import json
data = {
"bookstore": {
"book": [
{
"title": "Harry Potter",
"price": 29.99
},
{
"title": "The Alchemist",
"price": 12.99
}
]
}
}
# 选择书店中所有书的数量
jsonpath.jsonpath(data, "$.bookstore.book.len()")
# 选择书店中价格最低的书的标题
jsonpath.jsonpath(data, "$.bookstore.book[?(@.price == $.bookstore.book[*].price.min())].title")
以上是Python+ JSONPath 的一些基本语法、操作符、过滤器和内置函数的介绍。使用这些功能,你可以轻松地从 JSON 数据中提取所需的信息。