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

相关推荐
青 春 记 忆4 小时前
Dify Docker Compose 通用无损升级指南:从备份、双版本预演到切换与回滚
运维·人工智能·python·docker·容器
GlueNa2SiO34 小时前
03-Flask模板引擎Jinja2详解
笔记·python·flask
临沂GEO6 小时前
GEO搜索优化科普|正规地理位置流量运营入门指南
大数据·人工智能·python·流量运营
葡萄城技术团队6 小时前
如何通过 JSON 数据源 / Web API 快速构建轻量级报表(Report)?
前端·json·原型模式
大模型码小白6 小时前
Spring AI Tool 实现自然语言操作 MySQL 数据库详解
服务器·开发语言·数据库·人工智能·python·mysql·spring
深蓝电商API7 小时前
常见反爬策略全解析
爬虫·反爬策略
荷蒲8 小时前
【小白量化Qbuddy】利用AI学习中文Python
人工智能·python·学习
数据狐(Datafox)9 小时前
京东商品列表API技术解析与落地应用(含标准 JSON 示例)
java·大数据·前端·人工智能·python·数据分析·json
量化吞吐机9 小时前
2026年下半年手工交易规则走向量化表达,产品该先接住哪一步
人工智能·python
Metaphor69210 小时前
使用 Python 读取和删除 Excel 文件属性
python·excel