python常用模块2

Posted fqh202

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python常用模块2相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

nodejs常用代码片段

python常用代码片段总结

Python - 模块

python常用代码

盘点Python常用的模块和包

python-常用模块2