Python数据交互之json、pickle、shelve
2017-12-05 14:47
706 查看
1、JSON
json模块的好处是什么数据类型存入文件,就以什么数据类型取出来,不需要多余的转换#! -*- encoding:utf-8 -*- # json import json # json.dumps方法写入文件 da = {'name':'liujun', 'age':'23'} f = open('JSON_text','w') a = json.dumps(da) # dumps 处理 f.write(a) f.close() # json.loads方法读取 f = open('JSON_text','r') a = f.read() a = json.loads(a) # loads 处理 print(a['age']) f.close() ######################## # json.dump方法写入文件 di = {'name':'liujun', 'age':'23', 'sex':'man'} f = open('JSON_text','w') json.dump(di,f) # dump 处理 f.close() # json.load方法读取文件 f = open('JSON_text','r') d = json.load(f) # load 处理 print(d['sex']) f.close()
import json
# p = "{'haha':'hehe', 'xixi':66}" # json 转换字符串内容不能用单引号,会报错
p = '{"haha":"hehe", "xixi":66}' # 这样写才是对的
u = json.loads(p)
print(type(u), u) # <class 'dict'> {'haha': 'hehe', 'xixi': 66}
2、PICKLE
pickle在json的基础上,增加里可以存取特殊类型数据,写入的文件格式是二进制的#! -*- encoding:utf-8 -*- # pickle跟json使用方法一样,以二进制写入文件 # 跟json不同的是pickle可以把特殊形式的变量写入文件,比如一个函数变量 import pickle def foo(): print('ok') # # pickle.dumps方法写入文件 f = open('PICKLE_text','wb') date = pickle.dumps(foo) f.write(date) f.close() # # pickle.loads方法读取文件 f = open('PICKLE_text', 'rb') date = f.read() date = pickle.loads(date) # 存的只是函数对象内存地址,所以读出来的只是一个地址 date() f.close() # # pickle.dump方法写入文件 f = open('PICKLE_text', 'wb') pickle.dump(foo,f) f.close() # # pickle.load方法读取文件 f = open('PICKLE_text', 'rb') date = pickle.load(f) # 读出文件句柄 date() f.close()
3、SHELVE
shelve会把数据存到一个加密的数据库文件里
#! -*- encoding:utf-8 -*- # shelve 模块应用,把内容存到一个数据库文件里 import shelve # shelve写入 f = shelve.open('SHELVE_text') # 生成shelve对象 f['info'] = {'name':'liujun', 'age':'23', 'sex':'man'} # 直接以句柄变量存入一个字典 f.close() ################ # shelve读取 f = shelve.open('SHELVE_text') # 生成shelve对象 print(f.get('info')) # 用get方法取字典的值 print(f['info'].get('name')) print(f.get('like', 'ganmes')) # get 方法 , # 后面可以跟一个默认值,如果字典里没有这个键,就使用默认值 f.close()
相关文章推荐
- 详解Python之数据序列化(json、pickle、shelve)
- Python之数据序列化(json、pickle、shelve)
- Python之数据序列化(json、pickle、shelve)
- Python之数据序列化(json、pickle、shelve)
- python基础6之迭代器&生成器、json&pickle数据序列化
- python全栈开发-json和pickle模块(数据的序列化)
- Python模块:shutil、序列化(json&pickle&shelve)、xml
- Python基础(12)_python模块之sys模块、logging模块、序列化json模块、pickle模块、shelve模块
- python3之序列化(pickle&json&shelve)
- python模块整理26-数据持久性pickle、shelve、SQLite
- python的json,pickle,shelve模块
- python基础-序列化json、pickle 、shelve三种方式
- python模块之pickle、shelve、json
- python 序列化数据:pickle与json ,dumps与loads
- Python3. 4000 5——Json与pickle数据序列化
- python常见模块之序列化(json与pickle以及shelve)
- 文件数据操作模块 json 、 pickle、 shelve和configparser
- Python-json与pickle数据序列化
- python中内置函数和json、pickle数据序列化
- python之路-14.Json & pickle 数据序列化