PythonJSON数据解析(JsonJsonPath)
⼀、什么是JSON?
JSON(JavaScript Object Notation, JS 对象简谱) 是⼀种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的⼀个⼦集,采⽤完全独⽴于编程语⾔的⽂本格式来存储和表⽰数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语⾔。易于⼈阅读和编写,同时也易于机器解析和⽣成,并有效地提升⽹络传输效率。
简单地说,JSON 可以将 JavaScript 对象中表⽰的⼀组数据转换为字符串,然后就可以在⽹络或者程序之间轻松地传递这个字符串,并在需要的时候将它还原为各编程语⾔所⽀持的数据格式,例如在 PHP 中,可以将 JSON 还原为数组或者⼀个基本对象。在⽤到AJAX时,如果需要⽤到数组传值,这时就需要⽤JSON将数组转化为字符串。
⼆、JSON vs XML
JSON 与 XML 的相同之处:
JSON 和 XML 数据都是 "⾃我描述" ,都易于理解。
JSON 和 XML 数据都是有层次的结构
JSON 和 XML 数据可以被⼤多数编程语⾔使⽤
JSON 与 XML 的不同之处:
JSON 不需要结束标签
JSON 更加简短
JSON 读写速度更快
JSON 可以使⽤数组
为什么 JSON ⽐ XML 更好?
XML ⽐ JSON 更难解析。
JSON 可以直接使⽤现有的 JavaScript 对象解析。
针对 AJAX 应⽤,JSON ⽐ XML 数据加载更快,⽽且更简单:
使⽤ XML
获取 XML ⽂档
sha1校验工具使⽤ XML DOM 迭代循环⽂档
接数据解析出来复制给变量python请求并解析json数据
使⽤ JSON
获取 JSON 字符串
JSON.Parse 解析 JSON 字符串
三、Python中JSON模块的使⽤
Python3 中可以使⽤ json 模块来对 JSON 数据进⾏编解码,它主要提供了四个⽅法: dumps、dump、loads、load。
json.dumps() :将 Python 对象编码成 JSON 字符串
json.loads() :将已编码的 JSON 字符串解码为 Python 对象
在 json 的编解码过程中,Python 的原始类型与 json 类型会相互转换,具体的转化对照如下:
绝对值图像>java正则表达式三目
Python 编码为 JSON 类型转换对应表:
Python JSONindexof中文
dict object
list, tuple array
打开网址显示webappstr string
int, float, int- & float-derived Enums number
True true
False false
None null
JSON 解码为 Python 类型转换对应表:
JSON Python
object dict
array list
string str
number (int)int
number (real)float
true True
false False
null None
json.dump() :将Python内置类型序列化为json对象后写⼊⽂件
json.load() :读取⽂件中json形式的字符串元素转化为Python类型
如果你要处理的是⽂件⽽不是字符串,你可以使⽤ json.dump() 和 json.load() 来编码和解码JSON数据。例如:
# 写⼊ JSON 数据
with open('data.json', 'w') as f:
json.dump(data, f)
# 读取数据
with open('data.json', 'r') as f:
data = json.load(f)
四、Python中JsonPath模块的使⽤
JsonPath 是⼀种信息抽取类库,是从JSON⽂档中抽取指定信息的⼯具,提供多种语⾔实现版本,包括:Javascript, Python, PHP 和Java。
JsonPath 对于 JSON 来说,相当于 XPATH 对于 XML。
Json结构清晰,可读性⾼,复杂度低,⾮常容易匹配,下表中对应了XPath的⽤法。
XPath JSONPath描述
/$根节点
.@现⾏节点
/.or[]取⼦节点
..n/a取⽗节点,Jsonpath未⽀持
//..就是不管位置,选择所有符合条件的条件
**匹配所有元素节点
@n/a根据属性访问,Json不⽀持,因为Json是个Key-value递归结构,不需要。
[][]迭代器标⽰(可以在⾥边做简单的迭代操作,如数组下标,根据内容选值等)
|[,]⽀持迭代器中做多选。
[]?()⽀持过滤操作.
n/a()⽀持表达式计算
()n/a分组,JsonPath不⽀持
注:
decode的作⽤是将其他编码的字符串转换成 Unicode 编码
encode的作⽤是将 Unicode 编码转换成其他编码的字符串
⼀句话:UTF-8是对Unicode字符集进⾏编码的⼀种编码⽅式
五、实例
暂时没有喔o(╥﹏╥)o

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。