python-jsonpath的简单使用

使用jsonpath提取json数据指定参数的值,json文件如下所示

​
{
  "name": "atool",
  "url": "https://atool.vip/",
  "author": [
    {
      "id": "hustcc",
      "age": 24,
      "developer": true
    },
    {
      "id": "wzq",
      "age": 23,
      "developer": true
    },
    {
      "id": "dou",
      "age": 23,
      "developer": true
    }
  ],
  "tags": [
    "在线工具",
    "online",
    "free",
    "javascript"
  ],
  "describe": "网站前身为 atool.org,重构 ui 而来!"
}

​

代码如下所示

#!usr/bin/env python
#-*- coding:utf-8 -*-
"""
@author:doulihang
@file: json_path_test.py
@time: 2019/05/08
"""

import json
import jsonpath

with open("data.json", 'r') as load_f:
    # 将已编码的 JSON 字符串解码为Python对象
    load_dict = json.load(load_f)

"""使用jsonpath进行匹配"""

#获取根节点下所有name的值
a = jsonpath.jsonpath(load_dict,expr="$.name")
print(a)
#获取author下第一个字典id的值
b = jsonpath.jsonpath(load_dict,expr="$.author[0].id")
print(b)

#获取最后一个tags值
c = jsonpath.jsonpath(load_dict,expr="$.tags[-1:]")
print(c)

#获取前三个tags值
d = jsonpath.jsonpath(load_dict,expr="$.tags[0:3]")
print(d)

#获取第二个、第四个tags值
e = jsonpath.jsonpath(load_dict,expr="$.tags[1,3]")
print(e)

#获取age等于23的所有id
f = jsonpath.jsonpath(load_dict,expr="$.author[?(@.age== 23)]")
g = jsonpath.jsonpath(f,expr="$..id")
print(f)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值