IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> JsonPath 解析Josn字符串 -> 正文阅读

[大数据]JsonPath 解析Josn字符串

本文仅是测试验证使用jsonPath的功能,演示如何使用,详细的介绍可参考GitHub。

测试第一步安装jsonPath:

C:\>pip install Jsonpath

Collecting Jsonpath

Downloading jsonpath-0.82.tar.gz (9.6 kB)

Preparing metadata (setup.py) … done

Using legacy ‘setup.py install’ for Jsonpath, since package ‘wheel’ is not installed.

Installing collected packages: Jsonpath

Running setup.py install for Jsonpath … done

Successfully installed Jsonpath-0.82

https://github.com/json-path/JsonPath

第2步创建用于测试的json文件,依据GitHub示例,稍作修改的测试Json文件如下:

{“store”: {

“book”: [

{“category”: “编程”,

“author”: “Dinnes”,

“title”: “C#高级编程”,

“price”: 99.95

},

{“category”: “编程”,

“author”: “Ritchie”,

“title”: “WPF编程宝典”,

“price”: 12.99

},

{“category”: “编程”,

“author”: “Jeff”,

“title”: “Python爬虫”,

“isbn”: “0-553-21311-3”,

“price”: 78.99

},

{“category”: “编程”,

“author”: “Jack”,

“title”: “Python数据分析”,

“isbn”: “0-395-19395-8”,

“price”: 89.99

}

],

“bicycle”: {

“author”: “法拉利”,

“color”: “黑色”,

“price”: 1999.95

}

}

}

文件名为Demo.json

第3步测试功能:

导入库

import json

import jsonpath

jsObj = json.load(open(“Demo.json”, “r”, encoding=‘utf-8’))

测试1:获取所有书的作者

authors = jsonpath.jsonpath(jsObj, ‘$.store.book[*].author’)

print(authors)

输出:

[‘Dinnes’, ‘Ritchie’, ‘Jeff’, ‘Jack’]

测试2:获取所有的作者,任何包含作者的元素

authors = jsonpath.jsonpath(jsObj, ‘$…author’)

print(authors)

输出:

[‘Dinnes’, ‘Ritchie’, ‘Jeff’, ‘Jack’, ‘法拉利’]

测试3:获取store 下面的所有元素

all_elements = jsonpath.jsonpath(jsObj, ‘$.store.*’)

print(all_elements)

输出:

[[{‘category’: ‘编程’, ‘author’: ‘Dinnes’, ‘title’: ‘C#高级编程’, ‘price’: 99.95}, {‘category’: ‘编程’, ‘author’: ‘Ritchie’, ‘title’: ‘WPF编程宝典’, ‘price’: 12.99}, {‘category’: ‘编程’, ‘author’: ‘Jeff’, ‘title’: ‘Python爬虫’, ‘isbn’: ‘0-553-21311-3’, ‘price’: 78.99}, {‘category’: ‘编程’, ‘author’: ‘Jack’, ‘title’: ‘Python数据分析’, ‘isbn’: ‘0-395-19395-8’, ‘price’: 89.99}], {‘author’: ‘法拉利’, ‘color’: ‘黑色’, ‘price’: 1999.95}]

测试4:获取store 节点下所有商品的价格

all_prices = jsonpath.jsonpath(jsObj, ‘$.store…price’)

print(all_prices)

输出:

[99.95, 12.99, 78.99, 89.99, 1999.95]

测试5:获取第3本书的所有元素

book = jsonpath.jsonpath(jsObj, ‘$…book[2]’)

print(book)

输出:

[{‘category’: ‘编程’, ‘author’: ‘Jeff’, ‘title’: ‘Python爬虫’, ‘isbn’: ‘0-553-21311-3’, ‘price’: 78.99}]

测试6:获取最后一本书的所有元素

last_book = jsonpath.jsonpath(jsObj, ‘$…book[(@.length-1)]’)

print(last_book)

输出:

[{‘category’: ‘编程’, ‘author’: ‘Jack’, ‘title’: ‘Python数据分析’, ‘isbn’: ‘0-395-19395-8’, ‘price’: 89.99}]

测试7:获取前2本书的所有元素

# b_list = jsonpath.jsonpath(jsObj, ‘$…book[0,1]’)? 或者

b_list = jsonpath.jsonpath(jsObj, ‘$…book[0:2]’)

print(b_list)

输出:

[{‘category’: ‘编程’, ‘author’: ‘Dinnes’, ‘title’: ‘C#高级编程’, ‘price’: 99.95}, {‘category’: ‘编程’, ‘author’: ‘Ritchie’, ‘title’: ‘WPF编程宝典’, ‘price’: 12.99}]

测试8:获取包含属性ISBN的元素,即属性过滤

b_isbn = jsonpath.jsonpath(jsObj, ‘$…book[?(@.isbn)]’)

print(b_isbn)

输出:

[{‘category’: ‘编程’, ‘author’: ‘Jeff’, ‘title’: ‘Python爬虫’, ‘isbn’: ‘0-553-21311-3’, ‘price’: 78.99}, {‘category’: ‘编程’, ‘author’: ‘Jack’, ‘title’: ‘Python数据分析’, ‘isbn’: ‘0-395-19395-8’, ‘price’: 89.99}]

测试9:价格过滤

选取价格大于90的元素

b_P = jsonpath.jsonpath(jsObj, ‘$…book[?(@.price >90)]’)

print(b_P)

输出:

[{‘category’: ‘编程’, ‘author’: ‘Dinnes’, ‘title’: ‘C#高级编程’, ‘price’: 99.95}]

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:44:46  更:2021-12-16 17:46:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 11:37:57-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码