Python爬虫 JsonPath -- JsonPath的安装和基本使用

Posted CodeJiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python爬虫 JsonPath -- JsonPath的安装和基本使用相关的知识,希望对你有一定的参考价值。

1. JsonPath的安装

当然,你也可以采用命令的安装方式pip install jsonpath


2. jsonpath的基本使用


2.1 语法说明

jsonpath的使用:

obj = json.load(open('json文件', 'r', encoding='utf‐8')) 
result= jsonpath.jsonpath(obj, 'jsonpath语法')


2.2 练习

首先创建一个示例的json文件

books.json

 "store": 
    "book": [
       "category": "修真",
        "author": "六道",
        "title": "坏蛋是怎样练成的",
        "price": 8.95
      ,
       "category": "修真",
        "author": "天蚕土豆",
        "title": "斗破苍穹",
        "price": 12.99
      ,
       "category": "修真",
        "author": "唐家三少",
        "title": "斗罗大陆",
        "isbn": "0-553-21311-3",
        "price": 8.99
      ,
       "category": "修真",
        "author": "南派三叔",
        "title": "星辰变",
        "isbn": "0-395-19395-8",
        "price": 22.99
      
    ],
    "bicycle": 
      "author": "老马",
      "color": "黑色",
      "price": 19.95
    
  

  1. 书店所有书的作者
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 书店所有书的作者
author_list = jsonpath.jsonpath(obj,'$.store.book[*].author')
print(author_list)

  1. 所有的作者
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 所有的作者
author_list = jsonpath.jsonpath(obj, '$..author')
print(author_list)

  1. store下面的所有的元素
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# store下面的所有的元素
tag_list = jsonpath.jsonpath(obj,'$.store.*')
print(tag_list)

  1. store里面所有东西的price
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# store里面所有东西的price
price_list = jsonpath.jsonpath(obj, '$.store..price')
print(price_list)

  1. 获取第三本书的信息
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 第三个书
book = jsonpath.jsonpath(obj,'$..book[2]')
print(book)

  1. 获取最后一本书的信息
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 最后一本书
book = jsonpath.jsonpath(obj, '$..book[(@.length-1)]')
print(book)

  1. 前面的两本书的信息
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 	前面的两本书
# 第一种方式
book_list_01 = jsonpath.jsonpath(obj, '$..book[0,1]')
print('book_list_01: ', book_list_01)
# 第二种方式
book_list_02 = jsonpath.jsonpath(obj, '$..book[:2]')
print('book_list_02: ', book_list_02)

  1. 过滤出所有的包含isbn的书
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 条件过滤需要在()的前面添加一个?

# 	过滤出所有的包含isbn的书。
book_list = jsonpath.jsonpath(obj, '$..book[?(@.isbn)]')
print(book_list)

  1. 哪本书超过了10块钱?
import json
import jsonpath

obj = json.load(open('books.json', 'r', encoding='utf-8'))

# 哪本书超过了10块钱
book_list = jsonpath.jsonpath(obj, '$..book[?(@.price>10)].price')
print(book_list)



以上是关于Python爬虫 JsonPath -- JsonPath的安装和基本使用的主要内容,如果未能解决你的问题,请参考以下文章

Python爬虫进阶——JsonPath使用案例

数据之路 - Python爬虫 - Json模块与JsonPath

爬虫——json模块与jsonpath模块

Python爬虫之JSON和JSONPath是如何正确运用的?案例详解

Python爬虫之JSON和JSONPath是如何正确运用的?案例详解

Python爬虫应用实战案例-jsonpath在爬虫中的应用,爬取照片信息