1. JSON模块的介绍
(1)json模块:
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人们阅读和编写。json模块是python语言的一个系统内置模块,安装python后已包含json库,不需要单独再安装。只需 import json 即可。
(2)json模块的特点:
1、json可以在不同语言之间交换数据的,而pickle只在python中使用;
2、json只能序列化最基本(常用)的数据类型(列表、字典、元组、字符串、数字),如日期格式、类对象,josn就不能序列化。而pickle可以序列化所有的数据类型,包括类,函数等都可以序列化;
3、json模块提供了四个方法:dumps、dump、loads、load,pickle模块也提供了四个方法:dumps、dump、loads、load;
json dumps()——把数据类型转换成字符串;
json dump()——把数据类型转换成字符串并存储在文件中;
json loads()——把字符串转换成数据类型;
json load()——把文件打开从字符串转换成数据类型;
2. JSON模块的使用
(1)序列化操作:
序列化方法1:json.dumps()
格式为:json.dumps(obj)
该方法是序列化对象obj,将python中其他的数据类型(obj)转化为字符串类型;
示例如下:可以看出,序列化后的类型为字符串类型。
#json_序列化 import json dic={"id":"123456","name":"Alice","hobby":"music" } date=json.dumps(dic) print(date) print(type(date)) #序列化后的类型为字符串 #将序列化后的内容写入文件 with open("info.txt","w") as f: f.write(date) 结果如下: {"id": "123456", "name": "Alice", "hobby": "music"} <class 'str'>
date看起来好像是个字典,但要注意了,这实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。
序列化方法2:json.dump()
格式为:json.dump(obj,file)
json.dumps()方法跟json.dump()方法不同:json.dumps()方法不需要写入文件中,而json.dump()方法需要写入到文件中
示例如下:与上面的例子一样,只是方法不同,保存在info.txt文件中
#json_序列化 import json dic={"id":"123456","name":"Alice","hobby":