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) # 这将输出每本书的标题和价格字典

相关推荐
Evan_Lai11 分钟前
(一)独热编码、标签编码、目标编码、序数编码详解
python·机器学习
用户76241175670512 分钟前
第二章 Python语言基础
python
独立开发者阿乐12 分钟前
结构化数据 JSON-LD 实战:让 AI 读懂你的网页
人工智能·json·结构化数据·geo优化·json-ld·ai收录·faqpage
129Lab12 分钟前
BMS 核心算法:SOC 估算从安时积分到 LSTM-UKF 串级融合的 30 年演进(附 Python 实现)
python·算法·lstm·python3.11·bms·soc估算
129Lab21 分钟前
电池热管理仿真的AI加速:用Python+PINN物理信息神经网络替代传统CFD的可行性探索
pytorch·python·cfd·pinn·物理信息神经网络·仿真加速·电池热管理
用户2986985301434 分钟前
Python 中 HTML 转 PDF 的实现方法
python·html·api
答案是你44 分钟前
YOLOE 开放词汇检测 + ONNX / TensorRT 推理,开源了!
python·深度学习·yolo·目标检测·计算机视觉·视觉检测
2601_962885721 小时前
AlphaFeed 支持哪些 K 线周期?period参数怎么传?
前端·数据库·python
老歌老听老掉牙1 小时前
基于 Python 的顺次文本拼接:以 MCD 数控文件为例
python·数控·mcd
朝朝辞暮i1 小时前
VLA 系统学习第 7 课:loss.backward() 到底做了什么?——从计算图到反向传播
人工智能·python·深度学习·神经网络·vla