码迷,mamicode.com
首页 > 编程语言 > 详细

python常用模块2

时间:2018-01-12 19:45:29      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:编程语言   数据类型   import   处理   读取   class   内容   div   source   

python常用模块二

shelve
pickle
json


shelve模块

  • 内部结构其实就是字典类型,存储的时候指定对应的key,将内容作为value存储起来,取出也直接通过key取出value.
  • 注意,文件名不需要任何后缀,因为系统默认会将 .db 作为后缀名.

  • 代码1存储内容

import shelve
def fun1():
    pass
s = shelve.open(‘test_shelve‘)
s[‘dic‘] = {}.fromkeys(list(‘abcdefg‘), 0)
s[‘func‘] = fun1
s[‘list‘] = list(range(10))
s.close()
  • 代码2取出内容
s = shelve.open(‘test_shelve‘)
s = shelve.open(‘test_shelve‘)
d = s.get(‘dic‘)
func = s.get(‘func‘)
lst = s.get(‘list‘)

pickle模块

  • 写入和读取时是以字节的形式读取的,可以指定编码和解码格式

  • 写入文件

import pickle
f = open(‘save.pkl‘, ‘wb‘, encoding=‘utf8‘)
dic = {}.fromkeys(list(‘qwertasd‘), 1)
pickle.dump(dic, f)
f.close()
  • 读取文件
import pickle
f = open(‘save.pkl‘, ‘rb‘)
data = pickle.load(f)
print(data, type(data))

json模块

  • 模块如下功能:

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

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

  • 代码1:将内容以json序列化形式存入文件

s = [‘我‘, ‘你‘, ‘它‘, ‘asdas‘]
f = open(‘save.json‘, ‘w‘)
json.dump(s, f)
f.close()
  • 代码2:使用json模块读取json格式内容
f1 = open(‘save.json‘, ‘r‘, encoding=‘utf8‘)
result = json.load(f1)
# result = json.loads(f1.read())
  • 将字符串json序列化处理,存入文件的都是unicode格式的编码
data = json.dumps(s)
print(data, type(data))
# ["\u6211", "\u4f60", "\u5b83"] <class ‘str‘>


result = json.loads(data) # 直接反序列json序列化数据
print(result)
# [‘我‘, ‘你‘, ‘它‘]

json、pickle、shelve三个区别

主要区别有几下几点:

  1. pickle和shelve模块支持python所有的数据类型,包括函数;但是json只是支持dic/list/tuple/str/int等数据类型;
  2. pikle和shelve只能在python中使用,但是json是跨语言的;

json、pickle、shelve三个模块的作用

  • 用于字符串和python或其他编程语言数据类型间进行转换,不仅可以保存数据到硬盘,还可以保存它的数据类型

python常用模块2

标签:编程语言   数据类型   import   处理   读取   class   内容   div   source   

原文地址:https://www.cnblogs.com/fqh202/p/8277352.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!