当前位置: 首页 > news >正文

Python爬虫——解析_jsonpath

jsonpath的安装

pip install jsonpath

jsonpath的使用:

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

json文件:

{ "store": {"book": [{ "category": "末世","author": "晨星LL","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": "blue","price": 19.95}}
}
  • 书店所有书的作者
# *代表全部   可以根据下标来获取第几本书
book_list = jsonpath.jsonpath(obj, '$.store.book[*].author')
print(book_list)
  • 所有的作者
book_list = jsonpath.jsonpath(obj, '$..author')
print(book_list)
  • store下面所有的元素
book_list = jsonpath.jsonpath(obj, '$.store[*]')
print(book_list)
  • store里面所有东西的price
book_list = jsonpath.jsonpath(obj, '$.store..price')
print(book_list)
  • 第三本书
book_list = jsonpath.jsonpath(obj, '$..book[2]')
print(book_list)
  • 最后一本书
book_list = jsonpath.jsonpath(obj, '$..book[(@.length-1)]')
print(book_list)
  • 前两本书
# 两种写法
book_list = jsonpath.jsonpath(obj, '$..book[0,1]')
book_list = jsonpath.jsonpath(obj, '$..book[:2]')
print(book_list)
  • 条件过滤需要在()的前面添加一个?
  • 过滤出所有包含isbn的书
book_list = jsonpath.jsonpath(obj, '$..book[?(@.isbn)]')
print(book_list)
  • 哪本书超过了10块钱
book_list = jsonpath.jsonpath(obj, '$..book[?(@.price>10)]')
print(book_list)

参考:https://blog.csdn.net/Obstinate_L/article/details/125294971

相关文章:

Python爬虫——解析_jsonpath

jsonpath的安装 pip install jsonpathjsonpath的使用: obj json.load(open(json文件, r, encodingutf-8)) ret jsonpath.jsonpath(obj, jsonpath语法)json文件: { "store": {"book": [{ "category": "末世"…...

华为发布数字资产继承功能

在华为开发者大会2023(HDC.Together)上,华为常务董事、终端BG CEO、智能汽车解决方案BU CEO余承东正式发布了数字资产继承功能,HarmonyOS提供了安全便捷的数字资产继承路径。 在鸿蒙世界中,我们每个人在每台设备、应用…...

阿里云NAS文件存储基本介绍与购买使用

文章目录 1.NAS文件存储基本概念1.1.什么是NAS文件存储1.2.NAS的应用场景1.3.NAS、OSS、EBS的区别 2.购买NAS文件存储2.1.开通NAS服务2.2.创建NAS文件系统2.3.配置NAS文件系统属性2.4.查看购买的NAS服务 3.NAS文件存储基本使用3.1.修改NAS文件系统默认的名称3.2.NAS的权限组3.3…...

大模型使用——超算上部署LLAMA-2-70B-Chat

大模型使用——超算上部署LLAMA-2-70B-Chat 前言 1、本机为Inspiron 5005,为64位,所用操作系统为Windos 10。超算的操作系统为基于Centos的linux,GPU配置为A100,所使用开发环境为Anaconda。 2、本教程主要实现了在超算上部署LLAM…...

机器学习笔记:李宏毅ChatGPT课程1:刨析ChatGPT

ChatGPT——Chat Generative Pre-trained Transformer 1 文字接龙 每次输出一个概率分布,根据概率sample一个答案 ——>因为是根据概率采样,所以ChatGPT每次的答案是不一样的(把生成式学习拆分成多个分类问题)将生成的答案加到…...

Llama 2 with langchain项目详解(三)

Llama 2 with langchain项目详解(三) 17.3 Llama 2 with langchain基础 本节讲解在LangChain中使用Llama 2模型的基础知识,展示如何运行LangChain的代码,及在云端运行Llama 2的700亿模型。 首先,使用Python的pip管理器安装一系列库,包括huggingface/transformers、datase…...

牛客 AB30 排序(快排模板)

描述 给定一个长度为 n 的数组,请你编写一个函数,返回该数组按升序排序后的结果。 数据范围: 0≤�≤11030≤n≤1103,数组中每个元素都满足 0≤���≤1090≤val≤109 要求&#xff1…...

【Linux旅行记】第一个小程序“进度条“!

文章目录 一、预备知识1.1回车换行1.2缓冲区 二、倒计时三、进度条3.1普通版本源代码3.2高级版本源代码 🍀小结🍀 🎉博客主页:小智_x0___0x_ 🎉欢迎关注:👍点赞🙌收藏✍️留言 &…...

DeepMind将AI用于可控核聚变:将等离子体形状模拟精度提高65%

近日,英国AI公司DeepMind宣布取得了一项新的突破,成功实现了AI可控核聚变。这一技术能够在高温等离子体环境下实现精准放电,为核聚变技术的发展提供了新的思路和创新。 长期以来,相关领域的科学家们,一直在寻找清洁、取…...

Scrum是什么意思,Scrum敏捷项目管理工具有哪些?

一、什么是Scrum? Scrum是一种敏捷项目管理方法,旨在帮助团队高效地开展软件开发和项目管理工作。 Scrum强调迭代和增量开发,通过将项目分解为多个短期的开发周期(称为Sprint),团队可以更好地应对需求变…...

【从零单排Golang】第十三话:使用WaitGroup等待多路并行的异步任务

在后端开发当中,经常会遇到这样的场景:请求给了批量的输入,对于每一个输入,我们都要给外部发请求等待返回,然后才能继续其它自己的业务逻辑。在这样的case下,如果每一个输入串行处理的话,那么很…...

WSL2安装CentOS7和CentOS8

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、下载ZIP包?二、安装1.打开Windows子系统支持2.安装到指定位置3.管理虚拟机4.配置虚拟机1.配置国内源2.安装软件3.安装第三方源 5.配置用户1.创建…...

不平衡电网条件下基于变频器DG操作的多目标优化研究(Matlab代码Simulink实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码&Simulink实现&文章讲解 💥1 概述 文献来源: 最近,利用并网转换器(GCC)克服电网故障并支撑电网电压已…...

【Leetcode】(自食用)简单题||单词数

step by step. 题目: 统计字符串中的单词个数,这里的单词指的是连续的不是空格的字符。 请注意,你可以假定字符串里不包括任何不可打印的字符。 示例: 输入: "Hello, my name is John" 输出: 5 解释: 这里的单词是指连续的不是空格…...

C语言代码的x86-64汇编指令分析过程记录

先通过Xcode创建一个terminal APP&#xff0c;语言选择C。代码如下&#xff1a; #include <stdio.h>int main(int argc, const char * argv[]) {int a[7]{1,2,3,4,5,6,7};int *ptr (int*)(&a1);printf("%d\n",*(ptr));return 0; } 在return 0处打上断点&…...

基于springboot+vue的房屋租赁系统(前后端分离)

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容&#xff1a;毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…...

Python文件读写操作详解:从基础到高级

摘要&#xff1a;文件读写是Python编程中常见的操作之一。本文将介绍Python中文件读写的基础知识&#xff0c;包括打开文件、读取文件内容、写入文件、关闭文件等基本操作。此外&#xff0c;还将探讨一些高级文件读写技术&#xff0c;如使用上下文管理器、处理异常、使用with语…...

ThreadLocal基本介绍

文章目录 什么是ThreadLocalThreadLocal解决了什么问题ThreadLocal的作用 ThreadLocal的使用场景ThreadLocal的代码示例ThreadLocal的优点ThreadLocal的缺点与volatile、synchronized、ThreadLocal比较 总结 什么是ThreadLocal ThreadLocal是Java中的一个线程本地变量&#xf…...

ffmpeg源码编译成功,但是引用生成的静态库(.a)报错,报错位置在xxx_list.c,报错信息为某变量未定义

背景&#xff1a;本文是对上一个文章的补充&#xff0c;在源码编译之前&#xff0c;项目是有完整的ffmpeg编译脚本的&#xff0c;只不过新增了断点调试ffmpeg&#xff0c;所以产生的上面的文章&#xff0c;也就是说&#xff0c;我在用make编译成功后&#xff0c;再去做的源码编…...

2023爱分析·信创云市场厂商评估报告:中国电子云

01 研究范围定义 信创2.0时代开启&#xff0c;信创进程正在从局部到全面、从细分到所有领域延展。在这个过程中&#xff0c;传统的系统集成,也在逐步向信创化、数字化及智能化转变。随着信创产业的发展&#xff0c;企业需要更多的技术支持和服务&#xff0c;而传统的系统集成已…...

2024年赣州旅游投资集团社会招聘笔试真

2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

群晖NAS如何在虚拟机创建飞牛NAS

套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

高考志愿填报管理系统---开发介绍

高考志愿填报管理系统是一款专为教育机构、学校和教师设计的学生信息管理和志愿填报辅助平台。系统基于Django框架开发&#xff0c;采用现代化的Web技术&#xff0c;为教育工作者提供高效、安全、便捷的学生管理解决方案。 ## &#x1f4cb; 系统概述 ### &#x1f3af; 系统定…...

【WebSocket】SpringBoot项目中使用WebSocket

1. 导入坐标 如果springboot父工程没有加入websocket的起步依赖&#xff0c;添加它的坐标的时候需要带上版本号。 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-websocket</artifactId> </dep…...

2025 后端自学UNIAPP【项目实战:旅游项目】7、景点详情页面【完结】

1、获取景点详情的请求【my_api.js】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口&#xff08;适配服务端返回 Token&#xff09; export const login async (code, avatar) > {const res await http(/login/getWXSessionKey, {code,avatar}); };//…...

【HTML】HTML 与 CSS 基础教程

作为 Java 工程师&#xff0c;掌握 HTML 和 CSS 也是需要的&#xff0c;它能让你高效与前端团队协作、调试页面元素&#xff0c;甚至独立完成简单页面开发。本文将用最简洁的方式带你掌握核心概念。 一、HTML&#xff0c;网页骨架搭建 核心概念&#xff1a;HTML通过标签定义内…...