使用Python怎么实现Json的序列化与反序列化

  介绍

这期内容当中小编将会给大家带来有关使用Python怎么实现Json的序列化与反序列化,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

<强> 1,Json序列化如下:

import  Json   print  (json.__all__),, #查看json库的所有方法   [& # 39;转储# 39;,,& # 39;转储# 39;,,& # 39;负载# 39;,,& # 39;负载# 39;,,& # 39;JSONDecoder& # 39;,, & # 39; JSONEncoder& # 39;]

未在转储函数中添加参数ensure_ascii=False,结果如下:

#编码:utf - 8   import  json   dict =,{& # 39;名字# 39;:& # 39;zhangsan& # 39;,, & # 39;年龄# 39;:33岁,& # 39;地址# 39;:& # 39;红星路& # 39;}   打印(& # 39;未序列化前的数据类型为:& # 39;,,类型(dict))   打印(& # 39;为序列化前的数据:& # 39;,,dict)   #对dict进行序列化的处理   时间=dict_xu  json.dumps(东西),,#直接进行序列化   打印(& # 39;序列化后的数据类型为:& # 39;,,类型(dict_xu))   打印(& # 39;序列化后的数据为:& # 39;,,dict_xu)

未序列化前的数据类型为:& lt;类& # 39;dict # 39;在
为序列化前的数据:{& # 39;名字# 39;:& # 39;zhangsan& # 39;, & # 39;地址# 39;:& # 39;红星路& # 39;,& # 39;年龄# 39;:33}
序列化后的数据类型为:& lt;类& # 39;str # 39;在
序列化后的数据为:{“name":“zhangsan",“address":“\ u7ea2 \ u661f \ u8def",“age": 33}

在转储函数中添加参数ensure_ascii=False,结果如下:

#编码:utf - 8   import  json      dict =,{& # 39;名字# 39;:& # 39;zhangsan& # 39;,, & # 39;年龄# 39;:33岁,& # 39;地址# 39;:& # 39;红星路& # 39;}   打印(& # 39;未序列化前的数据类型为:& # 39;,,类型(dict))   打印(& # 39;为序列化前的数据:& # 39;,,dict)   #对dict进行序列化的处理   时间=dict_xu  json.dumps (dict ensure_ascii=False),, #添加ensure_ascii=False进行序列化   打印(& # 39;序列化后的数据类型为:& # 39;,,类型(dict_xu))   打印(& # 39;序列化后的数据为:& # 39;,,dict_xu)

未序列化前的数据类型为:& lt;类& # 39;dict # 39;在
为序列化前的数据:{& # 39;地址# 39;:& # 39;红星路& # 39;,& # 39;年龄# 39;:33岁的& # 39;名字# 39;:& # 39;zhangsan& # 39;}
序列化后的数据类型为:& lt;类& # 39;str # 39;在
序列化后的数据为:{“address":“红星路“,“age": 33岁的“name":“zhangsan"}

<强> 2,Json反序列化如下:

#编码:utf - 8   import  json   dict =,{& # 39;名字# 39;:& # 39;zhangsan& # 39;,, & # 39;年龄# 39;:33岁,& # 39;地址# 39;:& # 39;红星路& # 39;}   打印(& # 39;未序列化前的数据类型为:& # 39;,,类型(dict))   打印(& # 39;为序列化前的数据:& # 39;,,dict)   #对dict进行序列化的处理   时间=dict_xu  json.dumps (dict ensure_ascii=False),, #添加ensure_ascii=False进行序列化   打印(& # 39;序列化后的数据类型为:& # 39;,,类型(dict_xu))   打印(& # 39;序列化后的数据为:& # 39;,,dict_xu)   #对dict_xu进行反序列化处理   时间=dict_fan  json.loads (dict_xu)   打印(& # 39;反序列化后的数据类型为:& # 39;,,类型(dict_fan))   打印(& # 39;反序列化后的数据为:,& # 39;,,dict_fan)

未序列化前的数据类型为:& lt;类& # 39;dict # 39;在
为序列化前的数据:{& # 39;名字# 39;:& # 39;zhangsan& # 39;, & # 39;年龄# 39;:33岁的& # 39;地址# 39;:& # 39;红星路& # 39;}
序列化后的数据类型为:& lt;类& # 39;str # 39;在
序列化后的数据为:{“name":“zhangsan",“age": 33岁的“address":“红星路“}
反序列化后的数据类型为:& lt;类& # 39;dict # 39;在
反序列化后的数据为:,{& # 39;名字# 39;:& # 39;zhangsan& # 39;, & # 39;年龄# 39;:33岁的& # 39;地址# 39;:& # 39;红星路& # 39;}

在实际的工作中,序列化或者反序列化的可能是一个文件的形式,不可能像如上写的那样简单的,下来就来实现这部分,把文件内容进行序列化和反序列化,先来看序列化的代码,两步操作:1、先序列化列表对象;2,步把序列化成的字符串写入文件:

#编码:utf - 8   import  json      list =,(& # 39;苹果# 39;& # 39;华为# 39;,& # 39;硒# 39;,& # 39;java # 39;, & # 39; python # 39;】   #把列表先序列化,写入到一个文件中   #,两步操作,第1步先序列化,列表对象,第二步把序列化成的字符串写入文件   json.dump(列表,打开(& # 39;e:/用法# 39;,& # 39;w # 39;)),,   r1=开放(& # 39;e:/用法# 39;,& # 39;" # 39;)   print (r1.read ())

使用Python怎么实现Json的序列化与反序列化