somepeople

python模块之pickle&json&shelve

三者都是对数据类型进行序列化,然后存入文件

pickle 只支持python,但对python里的所有数据类型都支持

shelve同上,只是存取更方便,将数据序列化以字典的形式存取进文件中,linux

json对所有语言都支持,可读性较高,但对于python来说只支持常规的数据类型(str,int,dict,set,list,tuple)

import pickle
menu_dump = pickle.dumps(menu) print(menu_dump) menu_dump_load = pickle.loads(menu_dump) print(menu_dump_load) with open('menu_dump.pkl','wb') as file_1: pickle.dump(menu,file_1) with open('menu_dump.pkl','rb') as file_2: content = pickle.load(file_2) print(content) #b'\x80\x04\x95x\x01\x00\x00\x00\x00\x00\x00}\x94(\x8c\x06\xe5\x8c\x97\xe4\xba\xac\x94}\x94(\x8c\x06\xe6\xb5\xb7\xe6\xb7\x80\x94}\x94(\x8c\t\xe4\xba\x94\xe9\x81\x93\xe5\x8f\xa3\x94}\x94(\x8c\x04soho\x94}\x94\x8c\x06\xe7\xbd\x91\xe6\x98\x93\x94}\x94\x8c\x06google\x94}\x94u\x8c\t\xe4\xb8\xad\xe5\x85\xb3\xe6\x9d\x91\x94}\x94(\x8c\t\xe7\x88\xb1\xe5\xa5\x87\xe8\x89\xba\x94}\x94\x8c\x0c\xe6\xb1\xbd\xe8\xbd\xa6\xe4\xb9\x8b\xe5\xae\xb6\x94}\x94\x8c\x05youku\x94}\x94u\x8c\x06\xe4\xb8\x8a\xe5\x9c\xb0\x94}\x94\x8c\x06\xe7\x99\xbe\xe5\xba\xa6\x94}\x94su\x8c\x06\xe6\x98\x8c\xe5\xb9\xb3\x94}\x94(\x8c\x06\xe6\xb2\x99\xe6\xb2\xb3\x94}\x94(\x8c\t\xe8\x80\x81\xe7\x94\xb7\xe5\xad\xa9\x94}\x94\x8c\x06\xe5\x8c\x97\xe8\x88\xaa\x94}\x94u\x8c\t\xe5\xa4\xa9\xe9\x80\x9a\xe8\x8b\x91\x94}\x94\x8c\t\xe5\x9b\x9e\xe9\xbe\x99\xe8\xa7\x82\x94}\x94u\x8c\x06\xe6\x9c\x9d\xe9\x98\xb3\x94}\x94\x8c\x06\xe4\xb8\x9c\xe5\x9f\x8e\x94}\x94u\x8c\x06\xe4\xb8\x8a\xe6\xb5\xb7\x94}\x94(\x8c\x06\xe9\x97\xb5\xe8\xa1\x8c\x94}\x94\x8c\x0c\xe4\xba\xba\xe6\xb0\x91\xe5\xb9\xbf\xe5\x9c\xba\x94}\x94\x8c\t\xe7\x82\xb8\xe9\xb8\xa1\xe5\xba\x97\x94}\x94ss\x8c\x06\xe9\x97\xb8\xe5\x8c\x97\x94}\x94\x8c\t\xe7\x81\xab\xe8\xbd\xa6\xe7\xab\x99\x94}\x94\x8c\x06\xe6\x90\xba\xe7\xa8\x8b\x94}\x94ss\x8c\x06\xe6\xb5\xa6\xe4\xb8\x9c\x94}\x94u\x8c\x06\xe5\xb1\xb1\xe4\xb8\x9c\x94}\x94u.' #{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车站': {'携程': {}}}, '浦东': {}}, '山东': {}} #{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车站': {'携程': {}}}, '浦东': {}}, '山东': {}}
import pickle,json
menu_dump = json.dumps(menu)
print(menu_dump)
menu_dump_load = json.loads(menu_dump)
print(menu_dump_load)
with open('menu_dump.pkl','w') as file_1:
    json.dump(menu,file_1)
with open('menu_dump.pkl','r') as file_2:
    content = json.load(file_2)
    print(content)
#{"\u5317\u4eac": {"\u6d77\u6dc0": {"\u4e94\u9053\u53e3": {"soho": {}, "\u7f51\u6613": {}, "google": {}}, "\u4e2d\u5173\u6751": {"\u7231\u5947\u827a": {}, "\u6c7d\u8f66\u4e4b\u5bb6": {}, "youku": {}}, "\u4e0a\u5730": {"\u767e\u5ea6": {}}}, "\u660c\u5e73": {"\u6c99\u6cb3": {"\u8001\u7537\u5b69": {}, "\u5317\u822a": {}}, "\u5929\u901a\u82d1": {}, "\u56de\u9f99\u89c2": {}}, "\u671d\u9633": {}, "\u4e1c\u57ce": {}}, "\u4e0a\u6d77": {"\u95f5\u884c": {"\u4eba\u6c11\u5e7f\u573a": {"\u70b8\u9e21\u5e97": {}}}, "\u95f8\u5317": {"\u706b\u8f66\u7ad9": {"\u643a\u7a0b": {}}}, "\u6d66\u4e1c": {}}, "\u5c71\u4e1c": {}}
#{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车站': {'携程': {}}}, '浦东': {}}, '山东': {}}
#{'北京': {'海淀': {'五道口': {'soho': {}, '网易': {}, 'google': {}}, '中关村': {'爱奇艺': {}, '汽车之家': {}, 'youku': {}}, '上地': {'百度': {}}}, '昌平': {'沙河': {'老男孩': {}, '北航': {}}, '天通苑': {}, '回龙观': {}}, '朝阳': {}, '东城': {}}, '上海': {'闵行': {'人民广场': {'炸鸡店': {}}}, '闸北': {'火车站': {'携程': {}}}, '浦东': {}}, '山东': {}}

 

# -*- encoding: utf-8 -*-
import shelve
f = shelve.open('shelve_test')
names = ['alex','rain','test']
info = {'name':'alex','age':22}
f['names'] = names
f['info_dict'] = info
print(f.get('names'))
print(f.get('info_dict'))
f.close()
#['alex', 'rain', 'test']
#{'name': 'alex', 'age': 22}

 

posted on 2020-07-28 00:07  Hello_Thanos  阅读(253)  评论(0编辑  收藏  举报

导航