博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
序列化与反序列化
阅读量:5125 次
发布时间:2019-06-13

本文共 1429 字,大约阅读时间需要 4 分钟。

1.什么是序列化与反序列化

序列化就是将内存中的数据结构转换成一种中间格式存储到硬盘或者基于网络传输

发序列化就是硬盘中或者网络中传来的一种数据格式转换成内存中数据结构

2.为什么要有序列化与反序列化

1、可以保存程序的运行状态

2、数据的跨平台交互

3.如何使用

import jsondic={
'name':'egon','age':18,'sex':'male'}#序列化:内存中的数据类型------>中间格式json# # 1、序列化得到json_str# json_str=json.dumps(dic)# # 2、把json_str写入文件# with open('db.json','wt',encoding='utf-8') as f:# f.write(json_str)#1和2合为一步with open('db.json','wt',encoding='utf-8') as f: json.dump(dic,f)# print(json_str,type(json_str)) # json格式不能识别单引号,全都是双引号
import json#反序列化:中间格式json-----》内存中的数据类型# #1、从文件中读取json_str# with open('db.json','rt',encoding='utf-8') as f:#     json_str=f.read()# #2、将json_str转成内存中的数据类型# dic=json.loads(json_str)#1和2可以合作一步with open('db.json','rt',encoding='utf-8') as f:    dic=json.load(f)print(dic['sex'])
import pickledic={
'a':1,'b':2,'c':3}# #1 序列化# pkl=pickle.dumps(dic)# # print(pkl,type(pkl))## #2 写入文件# with open('db.pkl','wb') as f:# f.write(pkl)#1和2可以合作一步# with open('db.pkl','wb') as f:# pickle.dump(dic,f)
import pickle# # #1、从文件中读取pickle格式# with open('db.pkl','rb') as f:#     pkl=f.read()# #2、将json_str转成内存中的数据类型# dic=pickle.loads(pkl)# print(dic['a'])#1和2可以合作一步# with open('db.pkl','rb') as f:#     dic=pickle.load(f)## print(dic['a'])import json,pickles={1,2,3}# json.dumps(s)pickle.dumps(s)

json

优点:
  跨平台性强
缺点:
  只能支持/对应python部分的数据类型
pickle
优点:
  可以支持/对应所有python的数据类型
缺点:
  只能被python识别,不能跨平台

转载于:https://www.cnblogs.com/chillwave/p/9205792.html

你可能感兴趣的文章
dropify,不错的图片上传预览插件
查看>>
Spring各jar包的作用(转载)
查看>>
SVG_text.动态创建&换行显示(横)
查看>>
C#生成新浪微博短网址 示例源码
查看>>
JAVA读写文件
查看>>
缓存过期时间的设置
查看>>
Java中带标签的break,continue
查看>>
vtun中setsockopt fcntl等有关套接字设置
查看>>
LPC1768的SPI通讯
查看>>
基础Network Request
查看>>
206. Reverse Linked List
查看>>
C#生成DLL文件
查看>>
Zabbix Server设置主机监控
查看>>
[译]Javascript中的闭包(closures)
查看>>
php注释规范
查看>>
着陆攻击LAND Attack
查看>>
Xamarin XAML语言教程构建进度条ProgressBar
查看>>
iOS 9应用开发教程之iOS 9新特性
查看>>
在ASP.NET Core使用Middleware模拟Custom Error Page功能
查看>>
swfit-学习笔记(数组的使用)
查看>>