json
json模块的读和写
dump and load
集合是不能转换成json类型
json格式是引号里面放列表,它本身是一个字符串。
什么是json?
json是一个序列化模块,是一个“第三方”的特殊数据格式。
json的原理
可以将python的数据类型》》转换成json数据格式》》转成字符串》》文件中
其他语言想要使用python的数据:
文件夹》》字符串》》json数据格式》》其他语言的数据类型
为什么要使用json:
为了让不同的语言之间数据可以共享。
ps:由于各种语言的数据类型不一,但长相可以一样,比如python不能直接使用其他语言的数据类型,必须将其他语言的数据类型转换成json数据格式。python获取到json数据后可以将json转换成python的数据类型。
如何使用:
import json
1、json.dumps: json.dump() ---》 f = open() --》 f.write
序列化:python数据类型--》json--》字符串--》json文件中
2、json.loads: f = open(),str = f.read(),json.loads(str)
反序列化:json文件中--》字符串--》json--》python或其他语言数据类型
1-1 json.dump(): # 序列化: python数据类型 ---》 json ---》 字符串 ---》 json文件中内部实现 f.write()
2-1 json.load(): # 反序列化: json文件中 --》 字符串 ---》 json ---》 python或其他语言数据类型内部实现 f.read()
举例:
1、检测列表类型
import json
list1 = ['123', '321']
json_str = json.dumps(list1, ensure_ascii=False)
print(json_str) 运行结果:["123", "321"]
print(type(json_str)) 运行结果:<class 'str'>
python_data = json.loads(json_str) 中间的方法转换
print(python_data) 运行结果:['123', '321']
print(type(python_data)) 运行结果:<class 'list'>
import json
set1 = {1,2,3,4,5}
json_str = json.dumps(set1,ensure_ascii=False)
print(json_str) 运行结果: Object of type set is not JSON serializable
注意点:
1、在json中,所有的字符串都是双引号
2、python中的元组,若将其转换成json数据,内部会将元组---》列表
3、集合(set)是不能转换成json数据。
4、保存json数据时,用.json作为文件的后缀名