序列化反序列化
简单说,就是把内存中的数据格式转换成对方程序想要识别的数据格式,叫序列化(例如python的数据格式转换成java识别的数据格式), 那么反序列化就是把对方的数据格式化转换成你的程序要识别的格式java->python。
序列化的好处是可以将数据持久化及跨平台交互
json 所有编程语言都可以识别的数据格式,缺点是他不能识别python所有的数据类型(麻痹我觉得你要让让人家撒都懂,而且还懂得很深这叫扯淡)
序列化
import json
info={
'name':'len',
'age':20,
'sex':'None',
'is_beautiful:True
}
info_json=json.dumps(info)
with open('b.json','wt',encoding='utf8') as f:
f.write(info_json)
b.json结果为
{"name": "len", "age": 20, "sex": null, "is_beautiful": true} 都是双引号,都为小写字母,None转成了null,大写True 转成 true
反序列化
with open('b.json','rt',encoding='utf8') as f:
info_json=f.read()
info_now=json.loads(info_json)
print(info_now)
print(info_now['age])
info_now现在就是将json格式又转换成了字典格式,运行好之后结果为 {'name': 'len', 'age': 20, 'sex': None, 'is_beautiful': True}
info_now['age'] 结果为 20
==================
序列化直接写到文件
#info_json=json.dumps(info)(这部省略了)直接写到c.json了
with open('c.json','wt',encoding='utf8') as f:
json.dump(info,f)
反序列化直接读取文件
with open('b.json','rt',encoding='utf8') as f:
# info_json=f.read() 这部也省略了不需要了
info_now=json.load(f)
print(info_now)