Python序列化与反序列化-json与pickle

                       Python序列化与反序列化-json与picklepython

                                            做者:尹正杰web

版权声明:原创做品,谢绝转载!不然将追究法律责任。编程

 

 

一.json的序列化方式与反序列化方式json

1>.json序列化网络

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 
 8 """
 9 一.什么是序列化:
10     咱们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫作picking,在其余语言中也被
11 称之为serialization,marshalling,flattening等等,都是一个意思。序列化以后,就能够把序列化后的内容写入磁盘,
12 或者经过网络传输到别的机器上,反过来,把变量从内容从序列化的对象从新督导内存里称之为反序列化,即unpicking。
13 
14 二.序列化与编码的关系
15     序列化是在编码以前进行的操做。序列化是将各类数据类型统一处理为字符串,在序列化完成以后须要指定这些
16 字符串以何种方式(如,utf-8,gbk等等)存入硬盘哟!固然在反序列化一个文件的内容是,首先作的操做是解码,
17 也就是以哪一种方式打开文件,若是编码格式打开正常就会获取到正确的字符串,这样就能够进行反序列化操做啦。
18 
19 三.json模块
20     若是咱们要在不一样的编程语言之间传递对象,就必须把对象序列化为标准格式,好比XML,但更好的办法就是序列化为json,
21 由于json表示出来就是一个字符串,能够被全部语言读取,也能够方便的存储到磁盘或者经过网络传输。json不只是标准格式,
22 而且比XML更快,并且能够直接在web页面中读取,很是方便。
23 
24 """
25 
26 import json
27 
28 accounts = {
29     "Name":"yinzhengjie",
30     "id": "210",
31     "banlance": "20000",
32 }
33 
34 #序列化方式一:
35 # f = open(r"E:\Code\pycharm\文件存放处\python学习笔记\Day11\yinzhengjie.txt","w")     #打开文件
36 #
37 # json_str = json.dumps(accounts)                                                                 #序列化操做
38 #
39 # f.write(json_str)                                                                               #写入文件
40 
41 #序列化方式二:
42 with open(r"E:\Code\pycharm\文件存放处\python学习笔记\Day11\yinzhengjie.txt","w")as f:
43     json.dump(accounts,f)
1 {"Name": "yinzhengjie", "id": "210", "banlance": "20000"}
yinzhengjie.txt文件内容

2>.反序列化方式编程语言

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 import json
 8 
 9 with open(r"E:\Code\pycharm\文件存放处\python学习笔记\Day11\yinzhengjie.txt")as f:
10     print(json.load(f))

 二.pickle序列化与反序列化ide

1>.序列化方式学习

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 import pickle
 8 
 9 '''
10 pickle:
11     1.>用于python特有的类型 和 python的数据类型间进行转换
12     2.>pickle模块提供了四个功能:dumps、dump、loads、load.
13     补充说明:将数据经过特殊的形式转换成只有python解释器识别的字符串,这个过程咱们叫作序列化,而把哪些python可以识别的字符串转换成咱们能看懂的叫作反序列化。
14 '''
15 
16 
17 DataInfo = {
18     "Name":"尹正杰",
19     "Password":"123"
20 }
21 
22 
23 
24 # #将数据经过特殊的形式转换为只有python语言知识的字符串并写入文件
25 # pickle_str = pickle.dumps(DataInfo)
26 # print(pickle_str)
27 # f = open("yinzhengjie.txt","wb")
28 # f.write(pickle_str)
29 
30 #上面的写入文件的方法也能够这么玩,看起来更简单
31 with open("yinzhengjie.txt","wb") as f:
32     pickle.dump(DataInfo,f)

2.反序列化方式编码

 1 #!/usr/bin/env python
 2 #_*_coding:utf-8_*_
 3 #@author :yinzhengjie
 4 #blog:http://www.cnblogs.com/yinzhengjie/tag/python%E8%87%AA%E5%8A%A8%E5%8C%96%E8%BF%90%E7%BB%B4%E4%B9%8B%E8%B7%AF/
 5 #EMAIL:y1053419035@qq.com
 6 
 7 import pickle
 8 
 9 '''
10 用于序列化的两个模块
11     1>.json:用于字符串 和 python数据类型间进行转换
12     2>.pickle:用于python特有的类型和python的数据类型间进行转换
13     json模块提供了四个功能:dumps、dump、loads、load
14     pickle模块提供了四个功能:dumps、dump、loads、load
15 '''
16 
17 
18 f = open("yinzhengjie.txt","rb")
19 
20 # print(pickle.loads(f.read()))         #loads方式反序列化
21 
22 print(pickle.load(f))                   #load方式反序列化

三.对比json和pickle的异同:spa

       1>.相同点:都是用于系列化和反序列化的模块。

     2>.不一样点:json是在全部语言都通用的数据存储格式,而pickle是仅仅只有python语言独有的存储格式。

相关文章
相关标签/搜索