python的序列化和反序列化,python序列化和反序列化作用

  python的序列化和反序列化,python序列化和反序列化作用

  Python的序列化和反序列化 Python序列化和反序列化需要注意的几个问题(非常重要)_ MB 62 ab F3 AFB 54 FB _ 51 CTO的技术博客

  Python -序列化和反序列化前言:1。序列化:将对象的状态信息转换为可以存储或通过网络传输的信息的过程。传输的格式可以是JSON、XML等。

  反序列化:就是从存储区(JSON,XML)读取反序列化对象的状态,重新创建对象。

  2.为什么要用json来传输数据?这里,我们要比较两种传输数据的方式:xml和json。两者有什么区别?

  JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。便于人们阅读和书写。同时便于机器分析和生成。

  XML的全称是可扩展标记语言(EXtensible Markup Language),是一种类似于HTML的语言,是用来描述数据的,是重量级的。

  JSON和XML的轻重差别在于:

  JSON只提供整体解析方案,这种方法只有在解析数据较少的情况下才能取得好的效果;XML为大规模数据提供了逐步解析的方案,非常适合处理大量数据。

  1.简要概述1。序列化是内存对象将数据存储在文件中。(将python数据类型转换为str类型(dict— str)的过程)

  2.反序列化就是从文件中取出数据,变成内存对象(比如dict,list)(一种将str类型转换成python数据类型的数据结构(str— dict))

  3.3.json数据的本质是str类型

  二。数据格式如果一个系统中的数据要通过网络传输到其他系统或客户端,我们通常需要先将这些数据转换成字符串或字节串,需要规定统一的数据格式,以便数据接收方正确解析和理解这些数据的含义。XML是早期广泛使用的数据交换格式,在早期的系统集成论文中经常可以看到。现在比较流行的数据交换格式是JSON(JavaScript Object Notation),这是一种轻量级的数据交换格式。与XML相比,JSON更简单,更易于读写,更易于机器解析和生成。此外,我们还可以定制内部使用的数据交换格式。

  三。api用法1。json.dump():

  2、json.dumps():

  3.json.load():

  json.loads():

  四。代码示例

  Python3 JSON模块的使用

  这里只是最常用的转储,转储和装载,装载。

  导入json

  #自定义了一个简单的数据(Python中的字典类型)。如果Python中的字典可以序列化成json文件请用双引号!双引号!双引号!

  data_obj={

  北京:

  朝阳区:[三里屯,望京,国贸],

  海淀区:[五道口,学院路,后场村],

  东城区:[东直门,崇文门,王府井],

  },

  上海:

  静安区:[],

  黄浦区:[],

  虹口区:[],

  }

  }

  .......................

  转储:序列化对象

  Sort_keys:按键排序

  缩进:缩进4个空格,输出是易读的。

  确保_ascii:可以序列化非ascii代码(中文等。)

  s_dumps=json.dumps(data_obj,sort_keys=True,indent=4,ensure _ ascii=False)

  打印(转储)

  .......................

  转储:将对象序列化到文件中。

  dump()的第一个参数是要序列化的对象,第二个参数是打开的文件句柄。

  注意打开UTF 8编码的文件。

  *运行这个文件后,统计目录中会有一个data.json文件。打开之后,您可以看到json类型文件应该如何定义。

  用open(data.json , w ,encoding=UTF-8 )作为f_dump:

  s_dump=json.dump(data_obj,f_dump,确保_ascii=False)

  打印(s_dump)

  .......................

  Load:从打开的文件句柄加载数据。

  注意打开文件的编码。

  用open(data.json , r ,encoding=UTF-8 )作为f_load:

  r_load=json.load(f_load)

  打印(r _加载)

  .......................

  加载:从对象加载数据。

  r_loads=json.loads(s_dumps)

  打印(r_loads)

  arg={bakend: www.oldboy.org , record: {server: 100.1.7.9 , weight: 20, maxconn: 30}}

  A=json.loads(input(请输入添加的数据:),encoding=utf-8 )

  打印(一)需要注意的几个问题(非常重要)打印(一)python序列化和反序列化:1。当python字典类型数据的值中存在布尔值,比如TRUE或False,解析为json数据类型时,TRUE变为TRUE。

  例如:

  2.当python字典类型数据的值中存在空值时,如“”或“”[python数据不区分单引号和双引号],解析为json数据类型时就变成了“”。[json字符串数据全部用双引号括起来,不能用单引号]。

  例如:

  3.当python字典类型数据的值中存在None值[python中的unique,代表null值]时,解析为json数据类型时就变成null[注意:此时的json字符串不能被evel解析为python数据类型]。

  例如:

  4.上述情况存在于python的序列化中。反之,python的反序列化也是如此,逆向演绎也是如此。

  期待陌生,拥抱惊喜。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: