对于类的序列化:将类的成员变量名和数据作为一对键值对存储在物理内存中,例如

class A(object):
def __init__(self):
self.a = o
self.b = 1
self.c = 1
self.d = 10
self.e = 10

写入到物理内存上的形式如下{A:[{a:0},{b:1},{c:1},{d:10},{e:10}]}

反序列化就是将上述过程用程序解析成代码

class A(object):
def __init__(self):
self.a= []
self.b= 1
self.c= 1
self.d= 10
self.e= 10
    def FUN(self,dictPropertyAdd):
self.a= dictPropertyAdd.get(a,10)
self.b= dictPropertyAdd.get(b,10)
self.c= dictPropertyAdd.get(c,1)
self.d= dictPropertyAdd.get(d,1)
self.e= dictPropertyAdd.get(e,0)

根据上述例子可以将文件中的数据转换成类对象A的成员变量数据

如果类B中含有A的对象,也就是B中包含A的数据,像这样:

                   "f":2001001,
"g":[
{
"exp_add":1000,
"level":[1,300],
"radius_add":0,
"rebound":1,
"speed_add":1
}

那么反序列化的时候只需要在B中加入A对象的集合即可

 class B(object):
def __init__(self):
self.f= 0
self.g= []
     def parseProperty(self,dictData):
self.f= dictData.get(u'f')
l_g = dictData.get(u'g')
for i in range(len(l_g)):
son_obj = A()
son_obj.parseCannonPropertyAdd(l_g[i])
self.g.append(son_obj)

在json反序列化的过程中肯能会遇到字符错误,那就要检查序列化后的文件根式编码是否出现了问题。

楼楼在反初始化的时候,编码是正确的,但是因为列表中最后一个元素后面多了一个逗号,导致错误,还有一个就是逗号写成了中文逗号,导致json在load的时候报错

python中class的序列化和反序列化的更多相关文章

  1. Python 中数据的序列化和反序列化(json处理)

    概念: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming ...

  2. Asp.net中Json的序列化和反序列化(一)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  3. ASP.NET中JSON的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍 ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介 ...

  4. ASP.NET 中JSON 的序列化和反序列化

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  5. Asp.Net中JSON的序列化和反序列化-----JavaScriptSerializer ,加上自己工作心得

    在工作中和手机通信用到web服务和javascriptSerializer,返回json数据,供手机端调用,一开始返回的数据是一大堆,比如 [{"word_picture9":&q ...

  6. ASP.NET中JSON的序列化和反序列化(转)

    JSON是专门为浏览器中的网页上运行的JavaScript代码而设计的一种数据格式.在网站应用中使用JSON的场景越来越多,本文介绍ASP.NET中JSON的序列化和反序列化,主要对JSON的简单介绍 ...

  7. [转]ASP.NET中JSON的序列化和反序列化

    本文转自:http://www.cnblogs.com/zhaozhan/archive/2011/01/09/1931340.html JSON是专门为浏览器中的网页上运行的JavaScript代码 ...

  8. 【SpringBoot】 中时间类型 序列化、反序列化、格式处理

    [SpringBoot] 中时间类型 序列化.反序列化.格式处理 Date yml全局配置 spring: jackson: time-zone: GMT+8 date-format: yyyy-MM ...

  9. 【Python】python学习文件的序列化和反序列化

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

随机推荐

  1. weinre 远程调试 安装 配置

    1.第一种方法:安装:npm install -g weinre 2.第一种方法:开启本地监听服务器(修改端口,默认端口是8080):在cmd中运行: weinre --httpPort 8101 - ...

  2. webdriver +浏览器驱动

    webdriver 经常使用的驱动有ChromeDriver , Firefox 驱动和IE驱动. 在使用的时候需要将对应的驱动下载到本地放到Python的安装路径下,然后添加路径到系统环境变量. 有 ...

  3. nginx传世经典

    nginx的简单介绍与安装nginx的简单介绍 一.Nginx的产生 Nginx是一款高性能的 HTTP 和反向代理服务器,由俄罗斯人Igor Sysoev(伊戈尔·赛索耶夫)为俄罗斯网站Ramble ...

  4. 2017年4月7日16:18:17 java8 常用记录

    List<String> customerUids = customerTagModel.stream().map(CustomerTagModel::getCustomerUid)   ...

  5. Java学习笔记40(sql:将数据库内数据存入对象中)

    新建一个数据表: use qy97; create table student( id int primary key auto_increment, sname ), gander ), age i ...

  6. Page 对象详解

    Page 对象 由于网页编译后所创建的类由Page派生而来,因此网页可以直接使用Page对象的属性.方法和事件. Page对象的常用属性 1.IsPostBack(bool类型) 获取一个值,该值指示 ...

  7. mysql数据库的基本操作命令整理

    快捷键 ctrl+l 清屏 ctrl +a 回到行首 ctrl + e 回到行末   数据库操作 进入数据库 方式1 mysql -u用户名 -p 密码 --------直接输入密码,缺点,会暴露自己 ...

  8. Arcmap连接数据库需管理员获取许可——创建ArcSDE连接文件

    一.在装有server的服务器上创建ArcSDE连接文件 1.打开ArcMap<<ArcToolBox<<数据管理工具<<工作空间<<创建ArcSDE连 ...

  9. sql server中case when的用法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  10. Deploy Descriptor

    之前我们在编写HelloWorld项目时,在WEB-INF目录下创建了一个web.xml文件.这个文件叫做部署描述文件,每个Servlet应用程序的部署描述文件的名称都是web.xml.Web容器在启 ...