美文网首页
json pickle shelve模块

json pickle shelve模块

作者: 狗狗胖妞 | 来源:发表于2017-03-30 20:24 被阅读51次

json模块

用于字符串和python数据类型间进行转换,提供了四个功能:dumps、dump、loads、load

import json
#dumps 将Python基本数据类型转换为字符串形式
li=[1,3,5,"fe"]
result=json.dumps(li)
print(result,type(result))    #str

#loads 将字符串形式转换为Python基本数据类型
result2=json.loads(result)
print(result2,type(result2))  #列表类型

#dump 将Python基本数据类型转换为字符串形式,并且写入指定文件
json.dump(li,open('json_li','w',encoding='utf-8'))

#load 将指定文件中的字符串形式转换为Python基本数据类型
l2=json.load(open("json_li",'r',encoding='utf-8'))

pickle模块

用于python特有的类型 和 python的数据类型间进行转换,也同样提供了四个功能:dumps、dump、loads、load

  • json 只能处理基本数据类型(如元组、列表、字典),更适合跨语言。
  • pickle 对python所有类型做序列化操作,仅适用于Python,版本不同也可能出错。
import pickle
li=["fe",2,6]
# 将数据通过特殊的形式转换为只有Python语言认识的字符串(byte类)
result=pickle.dumps(li)
print(result,type(result))   #b'\x80\x03]q\x00(X\x02\x00\x00\x00feq\x01K\x02K\x06e.' <class 'bytes'>
# 将只有Python语言认识的字符串转换为数据
res=pickle.loads(result)
print(res,type(res))        #['fe', 2, 6] <class 'list'>
#将数据通过特殊的形式转换为只有Python语言认识的字符串,并写入文件
pickle.dump(li,open('pickle_li','wb'))
#将文件中只有Python语言认识的字符串转换为数据
res=pickle.load(open('pickle_li','rb'))

shelve模块

shelve模块是一个简单的k,v将内存数据通过文件持久化的模块(和字典类似),可以持久化任何pickle可支持的python数据格式

#序列化
import shelve

def stu_data(name,age):
    print("register stu",name,age)

name=["alex","rain","test"]
info={"name":"alex","age":22}

d=shelve.open('shelve_test')
print(type(d)) #类
d["test"]=name
d["info"]=info
d["func"]=stu_data
d.close()
#反序列化
import shelve

def stu_data():
    print("hello")

s=shelve.open('shelve_test')
print(s["test"])
print(s["info"])
s["func"]()
结果:
['alex', 'rain', 'test']
{'name': 'alex', 'age': 22}
hello

相关文章

  • 模块的使用2

    json&pickle模块/shelve configparser hashlib suprocess

  • Python入门教程系列:shelve

    前面我们介绍了json和pickle,这里再介绍一个简单好用的shelve持久化模块。 shelve模块以类似字典...

  • json pickle shelve模块

    json模块 用于字符串和python数据类型间进行转换,提供了四个功能:dumps、dump、loads、loa...

  • 关于json、pickle和shelve模块区别的一点个人理解

    json、pickle和shelve是python中数据持久化保存的常用模块,他们的主要区别如下: Json: ...

  • Json&pickle&shelve模块

    什么是序列化? 我们把对象(变量)从内存中变成可存储或传输的过程称之为序列化,在Python中叫做pickling...

  • 17.json、pickle、shelve模块

    一、json模块 1). json模块概述 json格式内容为字符串 json:前后端交互使用广泛的格式;配置文件...

  • shelve模块比pickle更强大

    一、shelve模块 shelve模块是一个简单的k,v将内存数据通过文件持久化的模块,可以持久化任何pickle...

  • Python3.6:shelve模块

    shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而...

  • python 标准库之shelve

    shelve模块比pickle模块简单,只有一个open函数,返回类似字典的对象,可读可写;key必须为字符串,而...

  • python之dbm、pickle、shelve

    dbm、pickle和shelve都是python自带模块。 dbm可以打开数据库文件,把字典存储到数据库文件中,...

网友评论

      本文标题:json pickle shelve模块

      本文链接:https://www.haomeiwen.com/subject/fzppottx.html