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

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. VSTO:使用C#开发Excel、Word【14】

    操作workbooks集合可从Application对象的Workbooks属性中获取的Workbooks集合包含当前在应用程序中打开的Workbook对象的集合. 它还具有用于管理开放工作簿,创建新 ...

  2. nasm学习资料

    http://cee.github.io/NASM-Tutorial/   学习nasm的一个例子, 不错, 代码跟着敲, 出结果.理解起来不费事. http://www.mouseos.com/as ...

  3. JAVA学习笔记系列1-Java版本介绍

    JavaSE(Java Standard Edition):标准版,定位在个人计算机上的应用(桌面应用).因为一般都是Windows系统,因此Java的这个发展并不好. JavaEE(Java Ent ...

  4. word转换成HTML 以及IE不兼容问题

    public static bool WordToHtml(string wordFileName, string htmlFileName) { try { Object oMissing = Sy ...

  5. alias-unalias

    一.用一条命令完成创建目录/data/test,即在/目录下创建/data目录,及其子目录/data/test 解答:mkdir -p /data/test 实践过程: 二.已知/tmp目录下已经存在 ...

  6. 关于第一次在IED(MyEclipse)部署Maven时,pom.xml头部报这样的错---org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache.maven.archiver.MavenArchiveConfiguration)

    rg.apache.maven.archiver.MavenArchiver.getManifest(org.apache.maven.project.MavenProject, org.apache ...

  7. Vue2.0

    Vue 1.0到2.0的变化: 1.在每个组件的模板中,不再支持片段代码 组件中的模板: 之前: <template> <h3我是组件<strong>我是加粗模板< ...

  8. ieee trans pami latex模板

    https://www.computer.org/cms/Computer.org/transactions/templates/ https://www.computer.org/web/tpami ...

  9. Git源码安装 Linux指定安装目录

    1.安装依赖包 $ yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 2.下载最新版源码包https: ...

  10. Gym101889E. Enigma(bfs+数位)

    比赛链接:传送门 题目大意: 求一个十进制大数S(有部分数位为"?")能被N整除时的最小值,如果没有办法被N整除,输出"*". 思路: 一个数位上的数值增加1后 ...