您的位置:首页 > 娱乐 > 八卦 > Python从0到100(三十八):json字符串的数据提取

Python从0到100(三十八):json字符串的数据提取

2024/10/12 11:33:13 来源:https://blog.csdn.net/weixin_51390582/article/details/139883839  浏览:    关键词:Python从0到100(三十八):json字符串的数据提取

在这里插入图片描述

JSON的数据提取

1.学习目标

  1. 掌握JSON相关的方法(load, loads, dump, dumps
  2. 了解JSONPath的使用(提取JSON中的数据)

2 复习什么是JSON

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。

3 JSON模块中方法的学习

  • json.load(): 从文件对象中读取JSON数据。
  • json.loads(): 从字符串中读取JSON数据。
  • json.dump(): 将Python对象写入文件对象,格式为JSON。
  • json.dumps(): 将Python对象转换为JSON格式的字符串。

4 JSONPath模块的学习

4.1 JSONPath介绍

JSONPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python,PHP 和 Java。

4.2 JsonPath 对于 JSON 来说,相当于 XPath 对于 XML。
安装方法:pip install jsonpath官方文档:[JSONPath - XPath for JSON](http://goessner.net/articles/JsonPath)
4.3 JsonPath语法:
  • 使用点符号.来表示当前对象。
  • 使用方括号[]来表示数组索引或对象属性。
  • 使用星号*作为通配符匹配所有成员名或数组索引。
  • 使用..表示递归下降,从当前位置开始,遍历所有子元素。
  • 使用[start:end:step]表示数组切片操作。
4.4 语法使用示例
book_dict = { "store": {"book": [ { "category": "reference","author": "Nigel Rees","title": "Sayings of the Century","price": 8.95},# ... 其他书籍信息],"bicycle": {"color": "red","price": 19.95}}
}from jsonpath import jsonpathprint(jsonpath(book_dict, '$..author')) # 返回所有作者的列表
4.5 JSONPath表达式示例表
JSONPath结果说明
$.store.book[*].authorstore中的所有book的作者使用通配符*匹配所有book元素
$..author所有作者使用..递归匹配所有author
$.store.*store下的所有元素使用点符号.匹配所有直接子元素
$.store..pricestore中的所有内容的价格使用双点..匹配所有嵌套价格
$..book[2]第三本书数组索引从0开始,因此是第三本书
$..book[(@.length-1)] | $..book[-1:]最后一本书使用脚本表达式或负索引
$..book[0,1] | $..book[:2]前两本书使用数组切片或索引列表
$..book[?(@.isbn)]有ISBN的所有书使用过滤器表达式匹配有ISBN属性的书
$..book[?(@.price<10)]价格小于10的所有书使用过滤器表达式匹配价格
$..*获取所有数据使用通配符匹配所有元素

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com