免费视频网站怎么赚钱,株洲seo优化报价,德州软件开发公司,如何查网站服务器速度什么叫序列化#xff1f;
序列化是指把内存里的数据类型转变成字符串#xff0c;以使其能存储到硬盘或通过网络传输到远程#xff0c;因为硬盘或网络传输时只能接受bytes
为什么要序列化#xff1f;
你打游戏过程中#xff0c;打累了#xff0c;停下来#xff0c;关掉…什么叫序列化
序列化是指把内存里的数据类型转变成字符串以使其能存储到硬盘或通过网络传输到远程因为硬盘或网络传输时只能接受bytes
为什么要序列化
你打游戏过程中打累了停下来关掉游戏、想过2天再玩2天之后游戏又从你上次停止的地方继续运行你上次游戏的进度肯定保存在硬盘上了是以何种形式呢游戏过程中产生的很多临时数据是不规律的可能在你关掉游戏时正好有10个列表3个嵌套字典的数据集合在内存里需要存下来你如何存把列表变成文件里的多行多列形式那嵌套字典呢根本没法存。所以若是有种办法可以直接把内存数据存到硬盘上下次程序再启动再从硬盘上读回来还是原来的格式的话那是极好的。
用于序列化的两个模块
json用于字符串 和 python数据类型间进行转换pickle用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能dumps、dump、loads、load
pickle模块提供了四个功能dumps、dump、loads、load 1 2 3 4 5 6 7 import pickle data {k1:123, k2:Hello} # pickle.dumps将数据通过特殊的形式转换为只有python语言认识的字符串 p_str pickle.dumps(data) print(p_str) p_load pickle.loads(p_str) print(p_load) 1 2 3 4 5 6 7 8 9 10 11 # pickle.dump 将数据通过特殊的形式转换为只有python语言认识的字符串并写入文件 # with open(old, wb, encoding utf-8) as fp: # pickle.dump(data, fp) # json.dumps 将数据通过特殊的形式转换为所有程序语言都认识的字符串 # j_str json.dumps(data) # # print(j_str) # json.dump 将数据通过特殊的形式转换只有python语言认识的字符串并写入文件 with open(D:/result.json, w, encodingutf8) as fp: json.dump(data, fp) json vs pickle:
JSON:
优点跨语言、体积小
缺点只能支持int\str\list\tuple\dict
Pickle:
优点专为python设计支持python所有的数据类型
缺点只能在python中使用存储数据占空间大