Python:JSON查询工具​JMESPath

简介:JMESPath是JSON的一种查询语言。对于经常需要解析json的数据的小伙伴都知道,在多层嵌套的情况下,我们需要写各种if-else来判断,非常的麻烦。JMESPath提供了便利的方式可以支持通用性高的查询方法。

历史攻略:

mock:json-server使用教程

Python:jsonpath库介绍和使用

Python内置库:编码和解码 JSON 对象 - json

安装:

pip install jmespath

案例解析:

# -*- coding: utf-8 -*-
# time: 2024/3/3 12:10
# file: main.py
# 公众号: 玩转测试开发
import jmespath

# case-1
data1 = {"foo": {"bar": "baz"}}
path1 = jmespath.search('foo.bar', data1)
print(path1)  # baz

# case-2
data2 = {"foo": {"bar": ["one", "two"]}}
path21 = jmespath.search('foo.bar[0]', data2)
path22 = jmespath.search('foo.bar[-1]', data2)
print(path21)  # one
print(path22)  # two

# case-3
data3 = {"foo": {"bar": {"name": "one"}, "baz": {"name": "two"}}}
path3 = jmespath.search('foo.*.name', data3)
print(path3)  # ['one', 'two']

# Case 3: If using the old query function method.
result = [v2["name"] for k, v in data3.items() for k2, v2 in v.items()]
print(result)

对比案例中case-3,可知:当涉及多层嵌套时,jmespath可以更简洁高效的提取数据,方便我们编写更少的判断,所以当需要处理复杂的JSON或字典数据时,推荐使用该模块。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值