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 相关文章推荐
Cpy和Python的效率对比
Mar 20 Python
Python中编写ORM框架的入门指引
Apr 29 Python
Python创建模块及模块导入的方法
May 27 Python
Python中正则表达式详解
May 17 Python
python 简单备份文件脚本v1.0的实例
Nov 06 Python
如何利用Boost.Python实现Python C/C++混合编程详解
Nov 08 Python
python面向对象实现名片管理系统文件版
Apr 26 Python
python 采用paramiko 远程执行命令及报错解决
Oct 21 Python
Python是什么 Python的用处
May 26 Python
python自定义函数def的应用详解
Jun 03 Python
详解Django ORM引发的数据库N+1性能问题
Oct 12 Python
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
Jun 13 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
一个从别的网站抓取信息的例子(域名查询)
2006/10/09 PHP
mysql5写入和读出乱码解决
2006/11/25 PHP
php调用nginx的mod_zip模块打包ZIP文件
2014/06/11 PHP
PHP面向对象程序设计之命名空间与自动加载类详解
2016/12/02 PHP
ArrayList类(增强版)
2007/04/04 Javascript
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
如何使用jQuery Draggable和Droppable实现拖拽功能
2013/07/05 Javascript
JS中实现replaceAll的方法(实例代码)
2013/11/12 Javascript
Eclipse去除js(JavaScript)验证错误
2014/02/11 Javascript
js中实现多态采用和继承类似的方法
2014/08/22 Javascript
jquery处理页面弹出层查询数据等待操作实例
2015/03/25 Javascript
JS实现一个简单的日历
2017/02/22 Javascript
微信小程序实现点赞、取消点赞功能
2018/11/02 Javascript
vue v-for 使用问题整理小结
2019/08/04 Javascript
Python translator使用实例
2008/09/06 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
利用Python破解验证码实例详解
2016/12/08 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
2018/01/27 Python
浅谈Python中的私有变量
2018/02/28 Python
对python中两种列表元素去重函数性能的比较方法
2018/06/29 Python
Python面向对象之类和对象属性的增删改查操作示例
2018/12/14 Python
Python2与Python3的区别实例总结
2019/04/17 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
python利用7z批量解压rar的实现
2019/08/07 Python
Python3 读取Word文件方式
2020/02/13 Python
Django Model中字段(field)的各种选项说明
2020/05/19 Python
利用python对excel中一列的时间数据更改格式操作
2020/07/14 Python
仓库管理专业个人的自我评价
2013/12/30 职场文书
护士的自我鉴定
2014/02/07 职场文书
初中班主任寄语
2014/04/04 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
代理人委托书
2014/08/01 职场文书
环卫工人节活动总结
2014/08/29 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
Go 内联优化让程序员爱不释手
2022/06/21 Golang