Python 学习之路

json、pickle

用于序列化的两个模块

  • json,用于字符串 和 python基本数据类型间进行转换
  • pickle,用于python特有的类型 和 python的数据类型间进行转换

json模块提供了四个功能:dumps、dump、loads、load

pickle模块提供了四个功能:dumps、dump、loads、load

json 用法:

 1 #序列化
 2 import json
 3 dic = {'k1':'v1'}
 4 print(dic,type(dic))
 5 #json.dumps 把python的基本数据类型转换成字符串形式
 6 result = json.dumps(dic)
 7 print(dic, type(result))
 8 
 9 #反序列化
10 import json
11 s1='{"k1":123}'
12 #json.loads 把字符串形式转换成其他基本数据类型
13 #注意: 反序列化时,中间字符串一定用“”表示,原因:跨语言操作时,其他语言是用“”表示字符串
14 dic1 = json.loads(s1)
15 print(dic1, type(dic1))
16 
17 #序列化并把内容写进文本
18 li = [1,2,3,4,5]
19 json.dump(li,open("test","w"))
20 
21 
22 #从文本读出字符串并进行反序列化,但文件中的内容只能有一个基本数据
23 li = json.load(open("test","r"))
24 print(li,type(li))

pickle 用法 同 json 一样,但pickle是将数据转换为只有python语言认识的字符串,有点像python语言的转译。并且pickle可以转换任意类型的数据(自定义类的数据类型),json只能转换基本数据类型。

shelve

shelve模块是一个简单的k,v将内存数据通过文件持久化保存的模块,可以持久化任何pickle可支持的python数据格式。

shelve 模块相当于可以 load,dump文件中的内容多次。

shelve序列化

1 #shelve 模块相当于可以 load,dump文件中的内容多次
2 import shelve
3 
4 s = shelve.open("test_shelve")
5 s["name"] = "DaLian"
6 s["neusoft"] = "HHH"
7 s.close()

shelve反序列化

1 import shelve
2 
3 f = shelve.open("test_shelve")
4 print(f.get("name"))
5 print(f.get("neusoft"))
原文地址:https://www.cnblogs.com/peiling-wu/p/6536259.html