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实现通过哈希算法检测图片重复的教程
Apr 02 Python
使用Python实现BT种子和磁力链接的相互转换
Nov 09 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
详解Python进阶之切片的误区与高级用法
Dec 24 Python
Python最小二乘法矩阵
Jan 02 Python
完美解决Python matplotlib绘图时汉字显示不正常的问题
Jan 29 Python
python实现单目标、多目标、多尺度、自定义特征的KCF跟踪算法(实例代码)
Jan 08 Python
基于Tensorflow使用CPU而不用GPU问题的解决
Feb 07 Python
Python利器openpyxl之操作excel表格
Apr 17 Python
Django 实现jwt认证的示例
Apr 30 Python
python四种出行路线规划的实现
Jun 23 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 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
MySQL数据源表结构图示
2008/06/05 PHP
thinkphp分页集成实例
2017/07/24 PHP
关于JavaScript的gzip静态压缩方法
2007/01/05 Javascript
dojo学习第二天 ajax异步请求之绑定列表
2011/08/29 Javascript
通过js获取div的background-image属性
2013/10/15 Javascript
jQuery中andSelf()方法用法实例
2015/01/08 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
javascript删除数组重复元素的方法汇总
2015/06/24 Javascript
JavaScript获取页面中超链接数量的方法
2015/11/09 Javascript
jquery实现简单的全选和反选功能
2016/01/02 Javascript
详解Matlab中 sort 函数用法
2016/03/20 Javascript
关于Javascript回调函数的一个妙用
2016/08/29 Javascript
vue移动端屏幕适配详解
2019/04/30 Javascript
原生JS使用Canvas实现拖拽式绘图功能
2019/06/05 Javascript
D3.js 实现带伸缩时间轴拓扑图的示例代码
2020/01/20 Javascript
Vue实现点击当前行变色
2020/12/14 Vue.js
Python中基本的日期时间处理的学习教程
2015/10/16 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python正则替换字符串函数re.sub用法示例
2017/01/19 Python
python 默认参数相关知识详解
2019/09/18 Python
Python Socket TCP双端聊天功能实现过程详解
2020/06/15 Python
Python 使用双重循环打印图形菱形操作
2020/08/09 Python
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
英国水族馆和池塘用品购物网站:Warehouse Aquatics
2019/08/29 全球购物
神路信息Java面试题目
2013/03/31 面试题
Oracle中delete,truncate和drop的区别
2016/05/05 面试题
银行实习自我鉴定
2013/10/12 职场文书
结构工程研究生求职信
2013/10/13 职场文书
市场营销专业毕业生自荐信
2013/11/02 职场文书
市场营销专业求职信
2014/06/17 职场文书
庆祝教师节标语
2014/10/09 职场文书
2015年机关纠风工作总结
2015/05/15 职场文书
建党伟业电影观后感
2015/06/01 职场文书
股东合作协议书模板2篇
2019/11/05 职场文书
Python机器学习之KNN近邻算法
2021/05/14 Python
JavaScript中10个Reduce常用场景技巧
2022/06/21 Javascript