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

相关推荐
SEO_juper10 小时前
Java 并发编程实战:从线程基础到高并发架构
运维·人工智能·爬虫·chatgpt·seo
niucloud-admin11 小时前
JAVA V6 多商户商城 开发文档——job 计划任务开发
java·python·github
小叶肥辉11 小时前
LangChain链和LangGraph图的学习笔记【三】——分别用langchain_openai库和langchain_community库调用大模型
笔记·python·langchain
2401_8734794011 小时前
IP属地为什么有时显示外省?用IP查询工具核查动态分配、运营商出口与GeoIP库
python·tcp/ip·ip
OKkankan13 小时前
LangChain 能力详解!:输出解析、RAG、向量数据库与 Retriever 检索器
数据结构·python·langchain·ai应用
山哥ol14 小时前
【Geany 环境配置与中文乱码解决参考】
python
会飞锦鲤14 小时前
基于 Mask R-CNN 的药片缺陷检测系统
人工智能·pytorch·python·神经网络·resnet-50
默 语15 小时前
Java新手入门:从零开始安装JDK并配置环境变量
java·开发语言·python·mysql·group by·1024程序员节·数据去重
清水白石00815 小时前
Python 异步编程深度解析:Cancellation 到底是异常还是控制信号?从 asyncio 取消机制到企业级事务设计最佳实践
开发语言·python
Patrick在香港15 小时前
Python 审计香港开放数据目录:两个端点差 10 倍,只有 9.3% 的资源标了「最后修改时间」
开发语言·数据库·python·数据分析·api·数据治理·开放数据