JsonPath在Python中的应用

借鉴文章:https://blog.csdn.net/fallenjency/article/details/123276600
实际应用:
建一个文件:bookJson里面放的是json内容
里面放的内容:

{
    "store": {
    "book":[
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ],
    "bicycle": {
      "color": "red",
      "price": 19.95
    }
  }
}

一、调用里面内容:$.store.bicycel.color

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.bicycle.color"
text = jsonpath.jsonpath(books, checkurl)
print(text)

返回:
['red']

二、调用book下所有内容:

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[*]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

返回:
[
      { "category": "reference",
        "author": "Nigel Rees",
        "title": "Sayings of the Century",
        "price": 8.95
      },
      { "category": "fiction",
        "author": "J. R. R. Tolkien",
        "title": "The Lord of the Rings",
        "isbn": "0-395-19395-8",
        "price": 22.99
      }
    ]

三、调用book节点的第一个对象:

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[0]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

返回:
[
{'category': 'reference', 
'author': 'Nigel Rees', 
'title': 'Sayings of the Century',
 'price': 8.95}
]

四、调用book节点全部title值

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[*].title"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

返回:
['Sayings of the Century', 'The Lord of the Rings']

五、输出book节点中category为fiction的所有对象:

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[?(@.category=='fiction')]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

返回:
[
{'category': 'fiction', 
'author': 'J. R. R. Tolkien', 
'title': 'The Lord of the Rings', 
'isbn': '0-395-19395-8', 'price': 22.99}
]

六、book节点中所有价格小于10的对象:

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl="$.store.book[?(@.price<10)]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

返回:
[
{'category': 'reference', 
'author': 'Nigel Rees', 
'title': 'Sayings of the Century', 
'price': 8.95}
]

七、输出book节点中所有含有isb的对象:

import json
import jsonpath

bookJson = open('bookJson', "rb").read()
books=json.loads(bookJson)
checkurl = "$.store.book[?(@.isbn)]"
object_list=jsonpath.jsonpath(books, checkurl)
print(object_list)

返回:
[{'category': 'fiction', 
'author': 'J. R. R. Tolkien', 
'title': 'The Lord of the Rings', 
'isbn': '0-395-19395-8', 'price': 22.99}]
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值