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
- 书店所有书的作者
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)
- 所有的作者
import json
import jsonpath
obj = json.load(open('books.json', 'r', encoding='utf-8'))
# 所有的作者
author_list = jsonpath.jsonpath(obj, '$..author')
print(author_list)
- 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)
- 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)
- 获取第三本书的信息
import json
import jsonpath
obj = json.load(open('books.json', 'r', encoding='utf-8'))
# 第三个书
book = jsonpath.jsonpath(obj,'$..book[2]')
print(book)
- 获取最后一本书的信息
import json
import jsonpath
obj = json.load(open('books.json', 'r', encoding='utf-8'))
# 最后一本书
book = jsonpath.jsonpath(obj, '$..book[(@.length-1)]')
print(book)
- 前面的两本书的信息
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)
- 过滤出所有的包含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)
- 哪本书超过了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爬虫 - Json模块与JsonPath
Python爬虫之JSON和JSONPath是如何正确运用的?案例详解