pickleDB

参考:


pickleDB是一个轻量级且简单的键值存储。 它基于Python的simplejson模块,受redis启发。 它获得了BSD三卡许可证的许可。

安装

$ pip install pickledb

pickleDB is Fun

>>> import pickledb 

>>> db = pickledb.load('example.db', False) 

>>> db.set('key', 'value') 
True 

>>> db.get('key') 
'value' 

>>> db.dump() 
True

More Information

您可以查看pickleDB的所有命令以及它们在这里执行的操作。

基本命令

https://pythonhosted.org/pickleDB/commands.html

# 结合pickle,维持数据的原样性
#-*- coding:utf-8 -*-
import pickledb
import pickle

db=pickledb.load('example.db',False) # 从文件加载数据库,如果没有会自动创建

data={1:1,2:2,3:3}

db.set('foo',pickle.dumps(data)) # set 设置一个键的字符串值

print(pickle.loads(db.get('foo'))) # get 获取一个键的值
print(type(pickle.loads(db.get('foo')))) # <type 'dict'>

db.dump() # 将数据库从内存保存到example.db

string

#-*- coding:utf-8 -*-
import pickledb
import pickle

db=pickledb.load('example.db',False) # 从文件加载数据库,如果没有会自动创建


data={1:1,2:2}

db.set('foo',data) # set 设置一个键的字符串值

db.set('foo1',data)

print(db.get('foo')) # get 获取一个键的值 {1: 1, 2: 2}
print(db.getall()) # 返回数据库中所有key的列表 # ['foo', 'foo1']

# db.dump() # 将数据库从内存保存到LOAD

db.rem('foo1') # 删除key(foo1)
print(db.get('foo1')) # None

db.append('foo',data) # 在key(foo)增加新值

print(db.get('foo')) # {1: 1, 2: 2}{1: 1, 2: 2}

list

#-*- coding:utf-8 -*-
import pickledb
import pickle

db=pickledb.load('example.db',False) # 加载数据库,如果没有会自动创建

list_=db.lcreate('database') # 创建list

data={1:1,2:2,3:3}

db.ladd('database',data) # 将data 添加到list

print db.lgetall('database') # 获取list中的所有内容 [{1: 1, 2: 2, 3: 3}]

db.lextend('database',data) # 用序列扩展列表

print db.lgetall('database') # [{1: 1, 2: 2, 3: 3}, 1, 2, 3]

print db.lget('database',0) # 在列表中返回一个值 {1: 1, 2: 2, 3: 3}

# db.lrem('database') # 删除一个列表及其所有值

db.lpop('database',-1) # 从列表中删除一个值
print db.lgetall('database') # [{1: 1, 2: 2, 3: 3}, 1, 2]

print(db.llen('database')) # 返回列表的长度 3

db.lappend('database',0,data) # 在列表中添加更多值

print db.lgetall('database') # ['{1: 1, 2: 2, 3: 3}{1: 1, 2: 2, 3: 3}', 1, 2]

print db.getall() # ['database']

dict

#-*- coding:utf-8 -*-
import pickledb
import pickle

db=pickledb.load('example.db',False) # 加载数据库,如果没有会自动创建

dict_=db.dcreate('database') # 创建dict


db.dadd('database',(1,2)) # 将一个键值对添加到字典中,“pair”是一个元组
db.dadd('database',(2,3))
print db.dgetall('database') # 从字典中返回所有键值对 {1: 2, 2: 3}

print db.dget('database',1) # 2 在字典中返回一个key的值

print db.dkeys('database') # 在字典中返回一个key的值 [1,2]

print db.dvals('database') # 返回一个字典的所有value [2,3]

print db.dexists('database',2) # 确定key是否存在 存在返回1,不存在报错

# db.drem('database') # 删除一个字典和所有的对

db.dpop('database',1) # 删除一个字典中的一个key

print db.dgetall('database') # {2: 3}

print db.getall() # ['database']

db.deldb() # 从数据库中删除所有内容

db.dump() # 将数据库从内存保存到文件

命令介绍

LOAD path dump→从文件加载数据库(自0.1起可用)

SET key value→设置一个键的字符串值(自0.1开始可用)

GET key→获取一个键的值(从0.1开始可用)

GETALL→返回数据库中所有密钥的列表(自0.4开始可用)

REM key→删除一个密钥(自0.1开始可用)

APPEND key more→添加更多密钥的值(自0.1.3起可用)

LCREATE name→创建一个列表(从0.1开始可用)

LADD name value→将值添加到列表(自0.1开始可用)

LGETALL name→返回列表中的所有值(自0.1开始可用)

LEXTEND name seq→用序列扩展列表(自0.6开始可用)

LGET name pos→在列表中返回一个值(自0.1开始可用)

LREM name→删除一个列表及其所有值(自0.1开始可用)

LPOP name pos→从列表中删除一个值(自0.1开始可用)

LLEN name→返回列表的长度(自0.6开始可用)

LAPPEND name pos more→在列表中添加更多值(自0.1.3开始可用)

DCREATE name→创建一个字典(自0.2.2开始可用)

DADD name pair→将一个键值对添加到字典中,“pair”是一个元组(自0.2.2开始可用)

DGETALL name→从字典中返回所有键值对(从0.2.2开始可用)

DGET name key→在字典中返回一个键的值(自0.2.2开始可用)

DKEYS name→返回一个字典的所有键(自0.6开始可用)

DVALS name→ 从0.6开始返回一个字典(可用)的所有值)

DEXISTS name key→确定密钥是否存在(自0.6开始可用)

DREM name→删除一个字典和所有的对(自0.2.2以来可用)

DPOP name key→删除一个字典中的一个键值(自0.2.2开始可用)

DELDB→从数据库中删除所有内容(自0.2.1起可用)

DUMP→将数据库从内存保存到LOAD (自0.3开始可用)
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值