Python爬虫——json解析

在Python中,处理JSON数据经常涉及到解析JSON对象或数组,并根据特定的路径(或者说"键")访问数据。虽然标准的json库提供了基础的解析功能,但当你需要按照类似于XPath的路径来访问嵌套的JSON对象时,可以使用jsonpath库,它可以让你以类似XPath的方式查询JSON数据。

安装jsonpath库

首先,你需要安装jsonpath-ng库,这是一个支持JSONPath的Python库。你可以使用pip来安装它:

bash

pip install jsonpath-ng

使用jsonpath-ng解析JSON

jsonpath-ng提供了jsonpath模块,你可以使用这个模块来解析JSON数据。以下是一些基本示例:

示例JSON数据

假设我们有以下JSON数据:

{

"store": {

"book": [

{

"category": "fiction",

"author": "Herman Melville",

"title": "Moby Dick",

"price": 8.99

},

{

"category": "programming",

"author": "John Doe",

"title": "Learning Python",

"price": 29.99

}

],

"bicycle": {

"color": "red",

"price": 19.95

}

}

}

以下是一些常见的 JSONPath 语法示例:

$:表示 JSON 文档的根。

.:用于访问对象的属性。

\[\]:用于访问数组元素或通过键名访问对象属性。

*:通配符,匹配所有元素或属性。

..:递归下降,查找所有层级的指定属性。

?():过滤表达式,允许基于条件选择元素。

,:联合操作,允许选择多个结果。

假设我们想找到所有书的标题和价格,我们可以使用如下的JSONPath表达式:

parsed = jsonpath.jsonpath(data, '$.store.book\*.{title,price}') for match in parsed: print(match.value) # 这将输出每本书的标题和价格字典

相关推荐
飞Link6 小时前
什么是 AirSim?一文读懂无人机仿真平台
python·算法·无人机
曲径海盗7 小时前
【Python 学习第 38 天】for 循环
python·学习笔记·编程入门
深蓝电商API7 小时前
用AI生成拟人行为:让鼠标轨迹更“有人味”
人工智能·爬虫
在世修行7 小时前
智学文枢:变式题生成引擎
python·ai·pyside·题目生成
On The Road :9 小时前
Java 多线程详解:从入门到线程安全
java·python·安全
岁月宁静9 小时前
如何设计支持 Skills 的 Agent?一套可扩展的四层架构
python·agent
岁月宁静9 小时前
CrewAI 快速上手:10 分钟搭建你的第一个 Agent 团队
python·agent
曲径海盗10 小时前
【Python 学习第 40 天】for 循环
python·学习笔记·编程入门
专注仿真10 小时前
知识问答大模型-rag算法详解
人工智能·python·控制算法
染指111010 小时前
158.Agent-LangGraph-子图(共享状态和不共享状态模式)
开发语言·人工智能·python·ui·agent·agents