1、序列化模块json
1.1 json 模块
json 是一种通用的数据格式,本质是一个字符串
loads dumps 和内存交互
load dump 和文件交互
import json
dic = {'苹果':'apple','梨':'pear'}
ret = json.dumps(dic,ensure_ascii=False) ###序列化的过程,把字典或者其他数据类型转换成字典,如果字典中有中文,写入的时候数据显示也是中文,需要添加参数ensure_ascii=False
print(dic)
print(ret)
#写入文件
with open('city',mode = 'w',encoding='utf-8') as f :
f.write(ret)
###字节在转换为字典
ret = json.loads(byte_8)
print(ret)
with open('city',encoding='utf-8') as f :
str_d = f.read()
print(str_d)
dic = json.loads(str_d)
print(dic)
json数据类型是一个特殊的字符串
在任何语言中它的type都必须是字符串
但是还满足一些要求,key 必须是字符串,且value只能是字典 列表 字符串 数据 bool值
json 是所有编程语言都公认的一种数据类型
如果是python 语言要给java 语言发送信息,那么就可以转换成json格式,java经过一系列转换就可以识别
字符串 = json.dumps(字典/列表)
字典/列表 = json.loads(字符串)
import json
lst = ['ceshi',1,2,3]
with open('file','w',encoding='utf-8') as f :
json.dump(lst,f)
###上述可以直接写进文件
import json
with open('file',encoding='utf-8') as f :
ret = json.load(f)
print(ret)
####上述直接读出文件
1.3 pickle 模块
#python 语言中特有的序列化模块
import pickle
dic = {'北京':{'朝阳':'昌平'},('天津','河北'):[1,2,3]}
ret = pickle.dumps(dic)
print(ret)
d = pickle.loads(ret)
print(d)
with open('pickle_file','wb') as f:
pickle.dump(dic,f)
with open('pickle_file','rb') as f:
ret = pickle.loads(f)
print(ret)
pickle 和 json 区别:
pickle 支持py 中几乎所有数据类型,但是只能py一种语言中是使用
json 支持所有的语言,但只支持有限的数据类型