介绍
介绍
JSON格式数据是现如今使用极其广泛的WEB应用的数据格式,它有着结构清晰、语法简单、占用字节少等等特点。相比较早期流行的XML格式数据来讲,JSON格式数据有着更加轻便、可读性更好、解析速度更快等等优势。
Python语言操作JSON格式数据是比较方便的,因为Python是弱类型语言,而且Python本身就有字典(dict)类型和数组(list)类型对应JSON格式数据,所以Python操作JSON格式数据非常的简单、方便、快捷。
JSON
JSON格式数据除了基本数据类型整型、浮点、字符串、布尔之外,还有两个特殊的集合型类型,它们就是数组(Array)和字典(Dictionary),下面福哥将分别给大家介绍一下。
字典
所谓的字典类型就是结构内的数据是以Key-Value的方式成对的存储的,通过Key可以快速地得到对应的Value,一个字典结构内Key不能重复。
{ "id": 35, "name": "鬼谷子叔叔", "url": "https://tongfu.net/home/35.html" }
数组
数组就是用来存储多个数据的集合,数组内的元素之间没有任何关系,数组内的元素以顺序的整型数字作为键,通过键可以快速地得到对应的元素。
[ "PHP", "Python", "Java", "JavaScript", "C/C++", "Asp.net" ]
安装
在Python语言里操作JSON格式数据是通过json这个库完成的,这个库是内建的库,可以直接导入使用。
import json
数组与JSON
在Python语言里面数组转换JSON格式数据是通过json对象的dumps方法完成的,Python的数组转换到JSON格式数据会毫无悬念的转换为JSON格式的数组,因为Python虽然是弱类型语言但是数组(list)类型也必须符合顺序整型数字的规范。
直接转换
如果直接通过json.dumps转换的话,汉字部分会被转换成unicode码。
jsonData = json.dumps([ "35", "鬼谷子叔叔", "https://tongfu.net/home/35.html" ], encoding="gbk") print(jsonData) jsonData = json.dumps([ "PHP", "Python", "Java", "JavaScript", "C/C++", "Asp.net" ], encoding="gbk") print(jsonData)
转换显示汉字
如果想要保留汉字内容,不转换成unicode码,需要使用如下的方式进行转换。
jsonData = json.dumps([ "35", "鬼谷子叔叔", "https://tongfu.net/home/35.html" ], encoding="gbk", ensure_ascii=False) print(jsonData) jsonData = json.dumps([ "PHP", "Python", "Java", "JavaScript", "C/C++", "Asp.net" ], encoding="gbk", ensure_ascii=False) print(jsonData)
字典与JSON
在Python语言里面字典转换JSON格式数据也是通过json.dumps函数完成的,Python的字典转换到JSON格式数据也是一定会转换成字典类型的。
直接转换
如果直接通过json.dumps转换的话,汉字部分会被转换成unicode码。
jsonData = json.dumps({ "id": "35", "name": "鬼谷子叔叔", "url:": "https://tongfu.net/home/35.html" }, encoding="gbk") print(jsonData)
转换显示汉字
如果想要保留汉字内容,不转换成unicode码,需要使用如下的方式进行转换。
jsonData = json.dumps({ "id": "35", "name": "鬼谷子叔叔", "url:": "https://tongfu.net/home/35.html" }, encoding="gbk", ensure_ascii=False) print(jsonData)
编码与解码
编码
所谓JSON编码就是将其他类型的数据转换成JSON格式数据的过程,因为JSON格式其实就是一个含有特殊格式的字符串,所以JSON编码就是将各种其他类型的数据转成可逆的字符串的过程。
Python实现编码的方式就是通过内建的json对象的dumps方法方法完成的,在进行编码之前我们必须确认源数据的字符编码并通过encoding参数指定出来。
jsonData = json.dumps({ "id": "35", "name": "鬼谷子叔叔", "url": "https://tongfu.net/home/35.html" }, encoding="gbk", ensure_ascii=False) print("JSON格式") print("") print(jsonData)
解码
所谓JSON解码就是将JSON格式数据还原成原来的数据类型的过程,因为JSON格式数据其实就是一个含有特殊格式的字符串,所以JSON解码就是将JSON格式的字符串还原成原来的数据的过程。
Python实现解码的方式就是通过内建的json对象的loads方法完成的,在进行解码之前我们必须确认JSON格式数据的字符编码并通过encoding参数指定出来。
jsonData = "{\"url\": \"https://tongfu.net/home/35.html\", \"id\": \"35\", \"name\": \"鬼谷子叔叔\"}" orgData = json.loads(jsonData, encoding="gbk") print("源数据") print("") print(orgData["id"]) print(orgData["name"].encode("gbk")) print(orgData["url"])
总结
今天福哥带着童鞋们针对Python操作JSON格式数据的技巧系统地讲解了一番,相信大家都应该听明白了!会操作JSON格式数据了就可以使用Python开发接口客户端程序了,这也是Python语言最常用的领域之一了。
下一课福哥会给大家讲解Java操作JSON格式数据的技巧,敬请期待~~