一、什么是序列化/反序列化

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

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

二、为什么要有

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

  2、数据跨平台交互

三、怎么用

  json:

    优点:

      跨平台性强

    缺点:

      只能支持/对应python部分的数据类型

  pickle

    优点:

      可以支持/对应所有python的数据类型

    缺点:

      只能被python识别,不能跨平台

  注:json格式不能识别单引号,全都是双引号 

1、json序列化和反序列化

#1、序列化得到json_strimport json
#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)

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)

2、pickle序列化和反序列化

import pickle
#序列化
#pk1=pickle.dumps(dic)
#写入文件
#with open('db.pk1','wb')as f:
#    f.write(pk1)#1、2合成一步
with open('db.pk1','wb')as f:pickle.dump(dic,f)

import pickle
#反序列化
#1、从文件中读取pickle格式
#with open('db.pk1,'rb') as f:
#    pk1=f.read()
#2、将json_str转成内存中的数据类型
#dic=pickle.loads(pk1)#1、2合成1步:
with open('db.pk1','rb')as f:dic=pickle.load(f)

转载于:https://www.cnblogs.com/xiaocao736427460/p/9356728.html

序列化和反序列化(json和pickle)day18相关推荐

  1. .Net 中关于序列化和反序列化Json的方法

    .Net SDK中关于序列化和反序列化Json的方法 项目中遇到和服务端交互时需要传递数据包为json格式的包,所以在服务端和SDK中都需要对json进行解析和组合的操作, 并且对一些复杂结构的jso ...

  2. JavaScriptSerializer序列化和反序列化JSON:使用自定义JavaScriptConverter

    JSON的序列化和反序列化已经成为Web开发必不可少的知识.现在常用的有System.Web.Script.Serialization下的JavaScriptSerializer来进行处理:另外一个比 ...

  3. C# 序列化与反序列化json

    与合作伙伴讨论问题,说到的c++与c#数据的转换调用,正好就说到了序列化与反序列化,同样也可用于不同语言间的调用,做了基础示例,作以下整理: 1 using System.Data; 2 using ...

  4. python(json):序列化 、反序列化 --- json.dump() / json.dumps() / json.load() / json.loads()的使用

    序列化 通过将对象序列化可以将其存储在变量或者文件中,可以保存当时对象的状态,实现其生命周期的延长.并且需要时可以再次将这个对象读取出来.json序列化提供了了2个方法,json.dumps()和js ...

  5. 在C#中,Json的序列化和反序列化的几种方式总结

    在C#中,Json的序列化和反序列化的几种方式总结 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据,以及如何反序列化Json数据到对象. 什么是JSON? JSON (Ja ...

  6. C#-JSON的序列化和反序列化

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-13.html 目录: 1.       前言 2.       ...

  7. .NET MVC第九章、Web Api Json序列化与反序列化

    .NET MVC第九章.Web Api Json序列化与反序列化 目录 .NET MVC第九章.Web Api Json序列化与反序列化 json数据格式 JSON 语法 返回对象 Json序列化 反 ...

  8. JavaScript JSON序列化和反序列化

    文章目录 JavaScript JSON序列化和反序列化 概述 JSON序列化 JSON.stringify() 仅一个参数使用 使用2个参数 使用3个参数 其他 自定义toJson 序列化顺序 反序 ...

  9. Json的序列化和反序列化的几种方式

    [什么是Json] 序列化:将对象转换成字节流的过程,这样就可以轻松将对象保存在磁盘文件或数据库中. 反序列化:序列化的逆过程,就是将字节流转换回原来的对象的过程. 当前主流的序列化JSON字符串主要 ...

  10. 十三、序列化和反序列化(部分转载)

    json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有 ...

最新文章

  1. MySQL主从同步问题集
  2. 06python 之基本数据类型
  3. 聊聊spring cloud gateway的SecureHeadersGatewayFilter
  4. 显卡在电脑什么位置_显卡是什么?电脑显卡有什么用?——《作用篇》
  5. 玩转Google开源C++单元测试框架Google Test系列(gtest)之一 - 初识gtest
  6. java vm 远程监控配置文件_Java VisualVM监控远程JVM(详解)
  7. 智能电网时代的网络空间安全
  8. magento 插件
  9. 200多位大牛!2019两院院士拟推荐候选人最新名单
  10. HashMap 和 Hashtable 的同和不同
  11. Nikitosh 和异或 —— 一道 trie 树的题用可持久化 trie 水 然后翻车了...
  12. html5声称需要大写吗,html5中有没有规定字母标签是用大写还是小写?
  13. html如何让图片背景透明,html – 如何让我的网站的背景透明,而不使内容(图像和文字)也是透明的?...
  14. 开课吧:全栈工程师的关键开发技能(硬实力)
  15. join为什么每个字符都分割了 js_js如何截取以逗号隔开的字符串
  16. Apollo-原理以及架构图分析
  17. SiamFC论文理解及代码理解
  18. windows下安装yarn
  19. python自然语言处理之分类和标注词性5.1-5.3
  20. 人人商城,资金转账功能开发,让余额可以在会员中心自由流通

热门文章

  1. python方法_详细解读Python中的__init__()方法
  2. win98 老电脑 文件导出_UGNX利器:轻量化建模,很多人还傻傻的关注电脑配置
  3. Ubuntu安装jupyter,启动出现ModuleNotFoundError: No module named ‘pysqlite2‘ 错误
  4. android mvp_Android MVP
  5. unix和linux命令_Linux / Unix系统中SSH命令的用法
  6. C++正则表达式创建匿名函数
  7. 那么多编程语言,为什么要选择C++?
  8. 《系统工程师实战培训》-01-规划(附:原版课件)
  9. 【最大连接数】Linux的文件最大连接数
  10. 读书笔记 effective c++ Item 47 使用traits class表示类型信息