pickle能序列化常规数据类型(元组、列表、字典、集合等),也可以序列化非常规类型(类、函数等),基本上是所以得数据类型,只能python程序使用。
Python file类型在Python是一个特殊的类型。
json 只能序列化常规类型,任何语言都可以。
###pickle
import pickle
myList = ['hello', 1, 2, 3, 'ok', 'sb']mydump = pickle.dumps(myList)print mydumpprint type(mydump)rs = pickle.loads(mydump)print rsprint type(rs)pickle.dump(myList, file('F:/python/test.txt', 'w')) //会自动关闭打开的文件rs = pickle.load(file('F:/python/test.txt', 'r'))print rs
输出:
(lp0
S'hello' p1 aI1 aI2 aI3 aS'ok' p2 aS'sb' p3 a. <type 'str'> ['hello', 1, 2, 3, 'ok', 'sb'] <type 'list'> ['hello', 1, 2, 3, 'ok', 'sb']###json
import json
myList = ['hello', 1, 2, 3, 'ok', 'sb']
mydump = json.dumps(myList)print mydumpprint type(mydump)rs = json.loads(mydump)print rsprint type(rs)json.dump(myList, file('F:/python/test.txt', 'w'))rs = json.load(file('F:/python/test.txt', 'r'))print rs输出:
["hello", 1, 2, 3, "ok", "sb"]
<type 'str'> [u'hello', 1, 2, 3, u'ok', u'sb'] <type 'list'> [u'hello', 1, 2, 3, u'ok', u'sb']