Python从0到100(三十八):json字符串的数据提取

在这里插入图片描述

JSON的数据提取

1.学习目标

  1. 掌握JSON相关的方法(load, loads, dump, dumps
  2. 了解JSONPath的使用(提取JSON中的数据)

2 复习什么是JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

3 JSON模块中方法的学习

  • json.load(): 从文件对象中读取JSON数据。
  • json.loads(): 从字符串中读取JSON数据。
  • json.dump(): 将Python对象写入文件对象,格式为JSON。
  • json.dumps(): 将Python对象转换为JSON格式的字符串。

4 JSONPath模块的学习

4.1 JSONPath介绍

JSONPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python,PHP 和 Java。

4.2 JsonPath 对于 JSON 来说,相当于 XPath 对于 XML。
安装方法:pip install jsonpath官方文档:[JSONPath - XPath for JSON](http://goessner.net/articles/JsonPath)
4.3 JsonPath语法:
  • 使用点符号.来表示当前对象。
  • 使用方括号[]来表示数组索引或对象属性。
  • 使用星号*作为通配符匹配所有成员名或数组索引。
  • 使用..表示递归下降,从当前位置开始,遍历所有子元素。
  • 使用[start:end:step]表示数组切片操作。
4.4 语法使用示例
book_dict = { "store": {"book": [ { "category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95},# ... 其他书籍信息],"bicycle": {"color": "red","price": 19.95}}
}from jsonpath import jsonpathprint(jsonpath(book_dict, '$..author')) # 返回所有作者的列表
4.5 JSONPath表达式示例表
JSONPath结果说明
$.store.book[*].authorstore中的所有book的作者使用通配符*匹配所有book元素
$..author所有作者使用..递归匹配所有author
$.store.*store下的所有元素使用点符号.匹配所有直接子元素
$.store..pricestore中的所有内容的价格使用双点..匹配所有嵌套价格
$..book[2]第三本书数组索引从0开始,因此是第三本书
$..book[(@.length-1)] | $..book[-1:]最后一本书使用脚本表达式或负索引
$..book[0,1] | $..book[:2]前两本书使用数组切片或索引列表
$..book[?(@.isbn)]有ISBN的所有书使用过滤器表达式匹配有ISBN属性的书
$..book[?(@.price<10)]价格小于10的所有书使用过滤器表达式匹配价格
$..*获取所有数据使用通配符匹配所有元素

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/44102.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

富文本braft-editor插件分享

效果展示 安装插件 npm install braft-editor 或者 yarn add braft-editor 主要代码 import React, { useState, forwardRef } from react //引入富文本编辑器 import BraftEditor from braft-editor // 引入编辑器样式 import braft-editor/dist/index.css import { B…

thinkphp8框架源码精讲

前言 很开心你能看到这个笔记&#xff0c;相信你对thinkphp是有一定兴趣的&#xff0c;正好大家都是志同道合的人。 thinkphp是我入门学习的第一个框架&#xff0c;经过这么多年了&#xff0c;还没好好的研究它&#xff0c;今年利用了空闲的时间狠狠的深入源码学习了一把&…

缺陷检测总结

基于深度学习的缺陷检测方法 1、全监督模型&#xff1a;基于表征学习的缺陷检测模型&#xff0c;基于度量学习的缺陷检测模型 1.1、基于表征学习的缺陷检测模型&#xff1a;分类网络&#xff0c;检测网络&#xff0c;分割网络&#xff1b; 其中分类网络的使用方式主要有三种…

2974. 最小数字游戏 Easy

你有一个下标从 0 开始、长度为 偶数 的整数数组 nums &#xff0c;同时还有一个空数组 arr 。Alice 和 Bob 决定玩一个游戏&#xff0c;游戏中每一轮 Alice 和 Bob 都会各自执行一次操作。游戏规则如下&#xff1a; 每一轮&#xff0c;Alice 先从 nums 中移除一个 最小 元素&a…

硅谷甄选运营平台-vue3组件通信方式

vue3组件通信方式 vue2组件通信方式&#xff1a; props:可以实现父子组件、子父组件、甚至兄弟组件通信自定义事件:可以实现子父组件通信全局事件总线$bus:可以实现任意组件通信pubsub:发布订阅模式实现任意组件通信vuex:集中式状态管理容器&#xff0c;实现任意组件通信ref:父…

camunda最终章-springboot

1.实现并行流子流程 1.画图 2.创建实体 package com.jmj.camunda7test.subProcess.entity;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.io.Serializable; import java.util.ArrayList; import java.util.List;Data …

C语言 | Leetcode C语言题解之第230题二叉搜索树中第K小的元素

题目&#xff1a; 题解&#xff1a; /*** Definition for a binary tree node.* struct TreeNode {* int val;* struct TreeNode *left;* struct TreeNode *right;* };*/int search_num(struct TreeNode* root, int k, int *result, int num) {if(num k 1){retu…

《Foundation 侧边栏》

《Foundation 侧边栏》 介绍 Foundation 是一个强大的前端框架,它提供了一套丰富的工具和组件,帮助开发者快速构建响应式、移动优先的网站和应用程序。在 Foundation 中,侧边栏是一个常用的组件,用于展示导航链接、菜单或其他相关信息。本文将详细介绍如何在 Foundation …

FastGPT连接OneAI接入网络模型

文章目录 FastGPT连接OneAI接入网络模型1.准备工作2.开始部署2.1下载 docker-compose.yml2.2修改docker-compose.yml里的参数 3.打开FastGPT添加模型3.1打开OneAPI3.2接入网络模型3.3重启服务 FastGPT连接OneAI接入网络模型 1.准备工作 本文档参考FastGPT的官方文档 主机ip接…

JDBC 实例分享——简易图书管理系统

目录 前言 数据表的建立 操作包各个类的实现 增加类 删除类 展示类 借阅与归还类 前言 书接上文 JDBC编程的学习——MYsql版本-CSDN博客 本期我们通过对先前图书管理系统进行改造,是它的数据能保存在数据库中 完整代码我已经保存在github中,能不能给个星呢!!!! call…

记一次若依框架和Springboot常见报错的实战漏洞挖掘

目录 前言 本次测实战利用图​ 1.判段系统框架 2.登录页面功能点测试 2.1 弱口令 2.2 webpack泄露信息判断 2.3 未授权接口信息发现 3.进一步测试发现新的若依测试点 3.1 默认弱口令 3.2 历史漏洞 4.访问8080端口发现spring经典爆粗 4.1 druid弱口令 4.2 SwaggerU…

热键危机:揭秘Memcached中的热键问题及其解决方案

热键危机&#xff1a;揭秘Memcached中的热键问题及其解决方案 Memcached是一种广泛使用的高性能分布式内存缓存系统&#xff0c;它通过缓存数据来减少对后端数据库的访问压力&#xff0c;从而提高应用性能。然而&#xff0c;Memcached也可能遇到热键&#xff08;hot key&#…

浅析Kafka-Stream消息流式处理流程及原理

以下结合案例&#xff1a;统计消息中单词出现次数&#xff0c;来测试并说明kafka消息流式处理的执行流程 Maven依赖 <dependencies><dependency><groupId>org.apache.kafka</groupId><artifactId>kafka-streams</artifactId><exclusio…

Okhttp实现原理

OkHttp 是一个高效的 HTTP 客户端库&#xff0c;广泛应用于 Android 和 Java 应用中。它提供了简洁的 API&#xff0c;支持多种协议&#xff0c;如 HTTP/1.x 和 HTTP/2&#xff0c;并且内置了缓存和重试机制。下面是结合源码分析的 OkHttp 的实现原理&#xff1a; 核心组件 O…

Swift 数据类型

Swift 数据类型 Swift 是一种强类型语言,这意味着在 Swift 中声明的每个变量和常量都必须具有明确的类型。Swift 的类型系统旨在帮助开发者编写清晰、安全的代码。本文将详细介绍 Swift 中的基本数据类型,包括整数、浮点数、布尔值、字符和字符串。 整数类型 Swift 提供了…

音频语言学习领域数据集现状、分类及评估

Audio Language Learning (Audio-Text Learning) 是一个新兴的研究领域&#xff0c;专注于处理、理解和描述声音。它的发展动力是机器学习技术的进步以及越来越多地将声音与其相应的文本描述相结合的数据集的可用性。 Audio Language Models (ALMs) 是这个领域的关键技术&#…

MATLAB中的SDPT3、LMILab、SeDuMi工具箱

MATLAB中的SDPT3、LMILab、SeDuMi工具箱都是用于解决特定数学优化问题的工具箱&#xff0c;它们在控制系统设计、机器学习、信号处理等领域有广泛的应用。以下是对这三个工具箱的详细介绍&#xff1a; 1. SDPT3工具箱 简介&#xff1a; SDPT3&#xff08;Semidefinite Progra…

基于QT开发的反射内存小工具

前言 最近项目需要需要开发一个反射内存小工具&#xff0c;经过2天的修修改终于完成了。界面如下&#xff1a; 功能简介 反射内存指定地址数据读取反射内存指定地址数据写入反射内存指定地址数据清理十进制、十六进制、二进制数据相互转换 部分代码 void RfmMain::setWOthe…

SqlSugar-使用SqlSugar进行多数据库操作

使用SqlSugar进行多数据库操作主要涉及以下几个步骤&#xff1a; 1. 配置数据库连接 首先&#xff0c;你需要在项目的配置文件中&#xff08;如appsettings.json、web.config或app.config&#xff09;配置多个数据库的连接字符串。每个连接字符串都对应一个不同的数据库。 例…

攻防世界(PHP过滤器过滤)file_include

转换过滤器官方文档&#xff1a;https://www.php.net/manual/zh/filters.convert.php#filters.convert.iconv 这道题因为convert.base64-encode被过滤掉了&#xff0c;所以使用convert.iconv.*过滤器 在激活 iconv 的前提下可以使用 convert.iconv.* 压缩过滤器&#xff0c; 等…