当前位置: 首页 > wzjs >正文

做测算的网站常用的网络推广方法

做测算的网站,常用的网络推广方法,网站SEO的评价,网站建设总结 优帮云jsonpath-ng 库的详细使用如下: 一、安装与导入 安装 通过 pip 安装库: pip install jsonpath-ng支持 Python 3.6 及以上版本。 导入核心模块 主要使用 parse 函数和 JSONPath 对象: from jsonpath_ng import parse二、基础查询操作 1. 简单…

jsonpath-ng 库的详细使用如下:

一、安装与导入

  1. 安装
    通过 pip 安装库:

    pip install jsonpath-ng
    

    支持 Python 3.6 及以上版本。

  2. 导入核心模块
    主要使用 parse 函数和 JSONPath 对象:

    from jsonpath_ng import parse
    

二、基础查询操作
1. 简单路径查询
• 场景:从 JSON 中提取指定路径的值。

data = {"person": {"name": "Alice","age": 30,"address": {"city": "New York"}}
}
# 解析表达式
expression = parse("person.name")
# 查找匹配结果
matches = expression.find(data)
print(matches[0].value)  # 输出:Alice

支持点号 . 或中括号 [] 访问路径,如 parse("person['address']['city']"),
expression.find() 函数 返回的是一个DatumInContext对象

2. 数组遍历查询
• 场景:提取列表中的所有元素。

使用 [*] 通配符匹配数组元素:

data = {"products": [{"name": "A", "price": 10}, {"name": "B", "price": 20}]}
expression = parse("products[*].price")
matches = [match.value for match in expression.find(data)]
print(matches)  # 输出:[10, 20]

适用于嵌套数组的递归查询(如 $..price)。


三、高级查询语法
1. 过滤条件
• 场景:筛选符合条件的数据。

使用 [?()] 表达式实现动态过滤:

data = {"store": {"books": [{"title": "Book1", "price": 15},{"title": "Book2", "price": 25}]}
}
# 筛选价格低于20的书籍
expression = parse("store.books[?(@.price < 20)].title")
matches = [match.value for match in expression.find(data)]
print(matches)  # 输出:["Book1"]

支持逻辑运算符(&&||)和算术运算。

[?(@.price < 20)]:过滤条件

  • (1) []:数组索引或过滤器操作符
    作用:表示对数组的操作,内部可以包含索引(如 [0])或过滤条件(如 [?()])。

    示例:

    books[0]:选择第一本书。books[?()]:根据条件筛选书籍。
    
  • (2) ?():条件过滤语法
    作用:定义过滤逻辑,?() 内需编写布尔表达式。
    示例:

    books[?(@.price < 20)]  // 筛选价格低于20的书籍
    
  • (3) @:当前节点引用
    作用:在过滤器中表示当前遍历到的数组元素(即每本书的对象)。
    示例:

    {"title": "Book A", "price": 15}  // 当前@指向此对象
    

    @.price 表示当前书籍的 price 属性值。

  • (4) @.price < 20:过滤逻辑
    作用:比较当前书籍的价格是否小于 20。
    扩展语法:

    • 逻辑运算符:&&(与)、||(或)、!(非),如 @.price < 20 && @.category == "fiction"

    • 正则匹配:=~(如 @.title =~ /^The/)。

2. 函数操作
• 场景:对数据进行聚合计算。

使用内置函数如 length()sum()

expression = parse("sum(store.books[*].price)")
total_price = expression.find(data)[0].value
print(total_price)  # 输出:40

其他函数包括 min()max() 等。


四、数据修改操作
1. 键值修改
• 场景:动态更新 JSON 数据中的值。

通过 update() 方法修改匹配项:

expression = parse("person.name")
matches = expression.find(data)
if matches:matches[0].update("Bob")  # 将 Alice 改为 Bob
print(data["person"]["name"])  # 输出:Bob

适用于批量修改场景。


五、实际应用案例
1. 接口测试验证
• 场景:验证接口返回数据的关键字段。

import requests
response = requests.get("https://api.example.com/user/1")
data = response.json()
# 验证用户ID是否为1
expression = parse("user.id")
user_id = expression.find(data)[0].value
assert user_id == 1, "用户ID验证失败"

2. 数据提取与转换
• 场景:从复杂 JSON 中提取结构化数据。

data = {"orders": [{"id": 1, "items": [{"name": "item1", "qty": 2}]},{"id": 2, "items": [{"name": "item2", "qty": 3}]}]
}
# 提取所有订单的商品名称和数量
expression = parse("orders[*].items[*].[name, qty]")
matches = [match.value for match in expression.find(data)]
print(matches)  # 输出:[["item1", 2], ["item2", 3]]

六、注意事项

  1. 路径大小写敏感:JSON 键名需严格匹配大小写。
  2. 错误处理:捕获 IndexErrorKeyError 避免程序崩溃:
    try:matches = expression.find(data)if not matches:print("未找到匹配项")
    except Exception as e:print(f"查询失败:{e}")
    
  3. 性能优化:对大型 JSON 数据避免频繁解析表达式,可预编译重用 parse 对象。
http://www.dtcms.com/wzjs/148094.html

相关文章:

  • 网站的购物车怎么做ebay欧洲站网址
  • 高校网站建设的优势和不足软文营销文章案例
  • 萝岗做网站百度资源站长平台
  • 收录网站源码网络广告推广方法
  • 做商城网站企业东莞网站推广营销
  • 护士证注册网站学电商出来一般干什么工作
  • wordpress 清空修订版本优化设计七年级上册语文答案
  • 做公众号必了解的网站百度一下你就知道官网新闻
  • 平湖网站建设公司克猪八戒网接单平台
  • 辽宁网站建设公司国际新闻消息
  • 发果怎么做视频网站最佳搜索引擎
  • 电子商务网站建设平台百度seo效果
  • 佛山 网站关键词优化网络游戏推广员
  • 网站建设案例收费情况如何写好软文
  • 甘肃省住房和建设厅网站服务中心软文推广发稿
  • 怎样做简单的网站如何设计网站
  • wordpress站点后台网站注册页面
  • wordpress 怎么安装插件自动app优化最新版
  • 最新新闻热点事件2021年9月郑州网站seo优化
  • apple官网登录入口济南seo排行榜
  • 武汉微网站产品推广文案100字
  • 企业网站开发职责网络运营是做什么的工作
  • 网站建设douyanet查询网站注册信息
  • 长沙做网站设计网络推广发帖网站
  • 江苏润通市政建设工程有限公司网站企业网站推广技巧
  • 深深圳的网站建设公司百度推广工作好干吗
  • 网站建设公司顺义百度导航最新版本免费下载
  • 兴国电商网站建设站长工具的网址
  • 杭州哪家做网站网络推广外包业务销售
  • 哪个网站可以做中国代购市场调研方案