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下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
Python 制作糗事百科爬虫实例
Sep 22 Python
Python中pow()和math.pow()函数用法示例
Feb 11 Python
Python3最长回文子串算法示例
Mar 04 Python
Python any()函数的使用方法
Oct 28 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
使用jupyter notebook直接打开.md格式的文件
Apr 10 Python
使用python计算三角形的斜边例子
Apr 15 Python
python requests包的request()函数中的参数-params和data的区别介绍
May 05 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
在django中查询获取数据,get, filter,all(),values()操作
Aug 09 Python
python 常用的异步框架汇总整理
Jun 18 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+MySQL5.0中文乱码解决方法
2006/11/20 PHP
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
PHP检查URL包含特定字符串实例方法
2019/02/11 PHP
PHP+RabbitMQ实现消息队列的完整代码
2019/03/20 PHP
jquery 插件 人性化的消息显示
2008/01/21 Javascript
动态为事件添加js代码示例
2009/02/15 Javascript
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
对frameset、frame、iframe的js操作示例代码
2013/08/16 Javascript
javaScript 动态访问JSon元素示例代码
2013/08/30 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
css3元素简单的闪烁效果实现(html5 jquery)
2013/12/28 Javascript
浅谈javascript面向对象程序设计
2015/01/21 Javascript
JS iFrame加载慢怎么解决
2016/05/13 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
关于javascript中限定时间内防止按钮重复点击的思路详解
2016/08/16 Javascript
angular2倒计时组件使用详解
2017/01/12 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
在Python的gevent框架下执行异步的Solr查询的教程
2015/04/16 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python实现读取txt文件并转换为excel的方法示例
2018/05/17 Python
pygame游戏之旅 创建游戏窗口界面
2018/11/20 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
django解决订单并发问题【推荐】
2019/07/31 Python
Django ORM 常用字段与不常用字段汇总
2019/08/09 Python
opencv resize图片为正方形尺寸的实现方法
2019/12/26 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
Python实现Word文档转换Markdown的示例
2020/12/22 Python
HTML5 通信API 跨域门槛将不再高、数据推送也不再是梦
2013/04/25 HTML / CSS
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
一份婚庆公司创业计划书
2014/01/11 职场文书
2014年教研工作总结
2014/12/06 职场文书
研究生导师推荐信
2015/03/25 职场文书