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中的getopt函数使用详解
Jul 28 Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 Python
对python PLT中的image和skimage处理图片方法详解
Jan 10 Python
python matplotlib实现双Y轴的实例
Feb 12 Python
Python英文文本分词(无空格)模块wordninja的使用实例
Feb 20 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
Jun 27 Python
python障碍式期权定价公式
Jul 19 Python
python中的split()函数和os.path.split()函数使用详解
Dec 21 Python
tf.concat中axis的含义与使用详解
Feb 07 Python
Tensorflow 实现将图像与标签数据转化为tfRecord文件
Feb 17 Python
Win10下安装并使用tensorflow-gpu1.8.0+python3.6全过程分析(显卡MX250+CUDA9.0+cudnn)
Feb 17 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 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正则走开
2008/03/15 PHP
用正则获取指定路径文件的名称
2007/02/27 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
15款优秀的jQuery导航菜单插件分享
2011/07/19 Javascript
javascript学习笔记(十二) RegExp类型介绍
2012/06/20 Javascript
jquery实现的一个简单进度条效果实例
2014/05/12 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
原生JavaScript制作微博发布面板效果
2016/03/11 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
2017/02/15 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
使用JS判断页面是首次被加载还是刷新
2019/05/26 Javascript
微信小程序纯文本实现@功能
2020/04/08 Javascript
Vue将props值实时传递 并可修改的操作
2020/08/09 Javascript
[52:10]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第二场 6.3
2018/06/04 DOTA
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Python2.7 实现引入自己写的类方法
2018/04/29 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
2018/09/04 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
Flask框架钩子函数功能与用法分析
2019/08/02 Python
python能做什么 python的含义
2019/10/12 Python
python字符串反转的四种方法详解
2019/12/02 Python
Python中six模块基础用法
2019/12/08 Python
使用python实现数组、链表、队列、栈的方法
2019/12/20 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
2020/05/09 Python
基于SQLAlchemy实现操作MySQL并执行原生sql语句
2020/06/10 Python
Python实现爬取并分析电商评论
2020/06/19 Python
北京一家公司的.net开发工程师笔试题
2012/04/17 面试题
初三物理教学反思
2014/01/21 职场文书
青春奉献演讲稿
2014/05/08 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
2015年家长学校工作总结
2015/04/22 职场文书
第一节英语课开场白
2015/06/01 职场文书
使用CSS定位HTML元素的实现方法
2022/07/07 HTML / CSS