python的json中方法及jsonpath模块用法分析


Posted in Python onDecember 06, 2019

本文实例讲述了python的json中方法及jsonpath模块用法。分享给大家供大家参考,具体如下:

什么是json

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

json模块中方法的学习

python的json中方法及jsonpath模块用法分析

其中类文件对象的理解:

具有read()或者write()方法的对象就是类文件对象,比如f = open(“a.txt”,”r”) f就是类文件对象

具体使用方法:

#json.dumps 实现python类型转化为json字符串
#indent实现换行和空格
#ensure_ascii=False实现让中文写入的时候保持为中文
json_str = json.dumps(mydict,indent=2,ensure_ascii=False)
#json.loads 实现json字符串转化为python的数据类型
my_dict = json.loads(json_str)
#json.dump 实现把python类型写入类文件对象
with open("temp.txt","w") as f:
  json.dump(mydict,f,ensure_ascii=False,indent=2)
# json.load 实现类文件对象中的json字符串转化为python类型
with open("temp.txt","r") as f:
  my_dict = json.load(f)

jsonpath模块

1. jsonpath介绍

用来解析多层嵌套的json数据;JsonPath 是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript, Python, PHP 和 Java。

2. JsonPath 对于 JSON 来说,相当于 XPath 对于 XML。

安装方法:pip install jsonpath

官方文档:http://goessner.net/articles/JsonPath

3. JsonPath与XPath语法对比:

Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。

XPath JSONPath 描述
/ $ 根节点
. @ 现行节点
/ .or[] 取子节点
.. n/a 取父节点,Jsonpath未支持
// .. 就是不管位置,选择所有符合条件的条件
* * 匹配所有元素节点
@ n/a 根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要属性访问。
[] [] 迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
| [,] 支持迭代器中做多选。
[] ?() 支持过滤操作.
n/a () 支持表达式计算
() n/a 分组,JsonPath不支持
Python 相关文章推荐
python抓取京东价格分析京东商品价格走势
Jan 09 Python
Python利用正则表达式匹配并截取指定子串及去重的方法
Jul 30 Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 Python
Python使用selenium实现网页用户名 密码 验证码自动登录功能
May 16 Python
Python3编码问题 Unicode utf-8 bytes互转方法
Oct 26 Python
django项目环境搭建及在虚拟机本地创建django项目的教程
Aug 02 Python
Python人工智能之路 jieba gensim 最好别分家之最简单的相似度实现
Aug 13 Python
wxPython窗体拆分布局基础组件
Nov 19 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
Python爬取阿拉丁统计信息过程图解
May 12 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
Python实例教程之检索输出月份日历表
Dec 16 Python
python输出数组中指定元素的所有索引示例
Dec 06 #Python
关于numpy.where()函数 返回值的解释
Dec 06 #Python
python进程的状态、创建及使用方法详解
Dec 06 #Python
Django Form and ModelForm的区别与使用
Dec 06 #Python
python 实现二维字典的键值合并等函数
Dec 06 #Python
python二分法查找算法实现方法【递归与非递归】
Dec 06 #Python
python二维键值数组生成转json的例子
Dec 06 #Python
You might like
php+mysql实现无限级分类 | 树型显示分类关系
2006/11/19 PHP
PHP数据类型之整数类型、浮点数的介绍
2013/04/28 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
PHP防盗链代码实例
2014/08/27 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
PHP简单数据库操作类实例【支持增删改查及链式操作】
2016/10/10 PHP
CentOS7系统搭建LAMP及更新PHP版本操作详解
2020/03/26 PHP
javascript下function声明一些小结
2007/12/28 Javascript
Mootools 1.2教程 正则表达式
2009/09/15 Javascript
Jquery刷新页面背景图片随机变换的实现方法
2013/03/15 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
使用cluster 将自己的Node服务器扩展为多线程服务器
2014/11/10 Javascript
nodejs教程之异步I/O
2014/11/21 NodeJs
JavaScript 基本概念
2015/01/20 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
JS实现div模块的截图并下载功能
2017/10/17 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
javascript实现评分功能
2020/06/24 Javascript
[04:17]DOTA2完美盛典,rOtk、BurNIng携手巴图演唱《倔强》
2017/11/28 DOTA
[01:02:00]DOTA2-DPC中国联赛 正赛 Elephant vs IG BO3 第三场 1月24日
2021/03/11 DOTA
Python实现大文件排序的方法
2015/07/10 Python
用python记录运行pid,并在需要时kill掉它们的实例
2017/01/16 Python
解决Alexnet训练模型在每个epoch中准确率和loss都会一升一降问题
2020/06/17 Python
世界上最大的网络主机公司:1&1
2016/10/12 全球购物
英格兰足协官方商店:England Store
2019/07/12 全球购物
个人借款担保书
2014/04/02 职场文书
鼓舞士气的口号
2014/06/16 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
委托书格式范文
2015/01/28 职场文书
投诉书格式范本
2015/07/02 职场文书
2016学习依法治国心得体会
2016/01/15 职场文书
解决redis批量删除key值的问题
2022/03/23 Redis
MySQL详解进行JDBC编程与增删改查方法
2022/06/16 MySQL
webpack介绍使用配置教程详解webpack介绍和使用
2022/06/25 Javascript