python的json中方法及jsonpath模块用法分析
本文实例讲述了python的json中方法及jsonpath模块用法。分享给大家供大家参考,具体如下:
什么是json
JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交互的场景,比如网站前台与后台之间的数据交互。
json模块中方法的学习
其中类文件对象的理解:
具有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类型写入类文件对象 withopen("temp.txt","w")asf: json.dump(mydict,f,ensure_ascii=False,indent=2) #json.load实现类文件对象中的json字符串转化为python类型 withopen("temp.txt","r")asf: my_dict=json.load(f)
jsonpath模块
1.jsonpath介绍
用来解析多层嵌套的json数据;JsonPath是一种信息抽取类库,是从JSON文档中抽取指定信息的工具,提供多种语言实现版本,包括:Javascript,Python,PHP和Java。
2.JsonPath对于JSON来说,相当于XPath对于XML。
安装方法:pipinstalljsonpath
官方文档:http://goessner.net/articles/JsonPath
3.JsonPath与XPath语法对比:
Json结构清晰,可读性高,复杂度低,非常容易匹配,下表中对应了XPath的用法。
JSONPath
描述
$
根节点
@
现行节点
.or[]
取子节点
n/a
取父节点,Jsonpath未支持
..
就是不管位置,选择所有符合条件的条件
*
匹配所有元素节点
n/a
根据属性访问,Json不支持,因为Json是个Key-value递归结构,不需要属性访问。
[]
迭代器标示(可以在里边做简单的迭代操作,如数组下标,根据内容选值等)
[,]
支持迭代器中做多选。
?()
支持过滤操作.
()
支持表达式计算
n/a
分组,JsonPath不支持
PS:这里再为大家推荐几款比较实用的json在线工具供大家参考使用:
在线
JSON在线格式化工具:
http://tools.jb51.net/code/jsonformat
在线XML/