序列化模块

# 序列化: 对象-> 字符串
# 反序列化: 字符串-> 对象
 
import json


# dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True,
#         allow_nan=True, cls=None, indent=None, separators=None,
#         default=None, sort_keys=False, **kw)
#     ensure_ascii:True,以ascii编码
# json.loads()
# json.load(fp) fp 为文件句柄
# json.dump(obj, fp)  将obj序列化并保存

dic = {'k1':'中国','k2':'v2','k3':'v3'}
str_dic = json.dumps(dic, ensure_ascii=False)
print(type(str_dic), str_dic)  # <class 'str'>, {"k3": "v3", "k1": "v1", "k2": "v2"}

dic2 = json.loads(str_dic)
print(type(dic2), dic2)  # <class 'dict'> {'k1': 'v1', 'k3': 'v3', 'k2': 'v2'}

with open('test.txt', 'w') as f:
    json.dump(dic, f)

 

import pickle

# 用法与json一致, 
# pickle.dumps()
# pickle.loads()
# pickle.dump()  文件需要用wb或rb方式操作
# pickle.load()

 

import shelve

f = shelve.open('test')
f['key'] = {'k1':'中国','k2':'v2','k3':'v3'}
f.close()

f = shelve.open('test')
a = f['key']
print(a)
f.close()

 

 

 

 

posted @ 2019-02-19 19:54  李小样  阅读(58)  评论(0)    收藏  举报