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实现的防DDoS脚本
Feb 08 Python
教你如何在Django 1.6中正确使用 Signal
Jun 22 Python
python中执行shell命令的几个方法小结
Sep 18 Python
为python设置socket代理的方法
Jan 14 Python
python通过floor函数舍弃小数位的方法
Mar 17 Python
基于python的字节编译详解
Sep 20 Python
你眼中的Python大牛 应该都有这份书单
Oct 31 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python时间序列缺失值的处理方法(日期缺失填充)
Aug 11 Python
Python类中self参数用法详解
Feb 13 Python
Python解释器以及PyCharm的安装教程图文详解
Feb 26 Python
Python os库常用操作代码汇总
Nov 03 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
工厂模式在Zend Framework中应用介绍
2012/07/10 PHP
PHP 正则表达式小结
2015/02/12 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
解决laravel5.4下的group by报错的问题
2019/10/16 PHP
EXT中xtype的含义分析
2010/01/07 Javascript
js关闭父窗口时关闭子窗口
2013/04/01 Javascript
关于extjs treepanel复选框选中父节点与子节点的问题
2013/04/02 Javascript
javascript中不提供sleep功能如何实现这个功能
2014/05/27 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
jQuery自定义动画函数实例详解(附demo源码)
2015/12/10 Javascript
基于jQuery插件实现点击小图显示大图效果
2016/05/11 Javascript
如何在vue里添加好看的lottie动画
2018/08/02 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
Vuex modules模式下mapState/mapMutations的操作实例
2019/10/17 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
js实现select下拉框选择
2020/01/11 Javascript
JavaScript实现滑动门效果
2020/01/18 Javascript
Vue组件跨层级获取组件操作
2020/07/27 Javascript
[01:23]一分钟告诉你 DOTA2为什么叫信仰2
2014/06/20 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
用Pygal绘制直方图代码示例
2017/12/07 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
pandas 将list切分后存入DataFrame中的实例
2018/07/03 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
python 利用文件锁单例执行脚本的方法
2019/02/19 Python
pandas 使用均值填充缺失值列的小技巧分享
2019/07/04 Python
运行Python编写的程序方法实例
2020/10/21 Python
Python Serial串口基本操作(收发数据)
2020/11/06 Python
浅析Python的命名空间与作用域
2020/11/25 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
大学生毕业自我鉴定范文
2013/09/19 职场文书
毕业生如何写自荐信
2014/03/26 职场文书
不服从上级领导安排的检讨书
2014/09/14 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
Python可视化学习之seaborn调色盘
2022/02/24 Python