Berkeley DB python btree

当熟悉 hash db    python bsddb (db-key 转)
使用确实很方便,但是没有 想 关系数据库中的 select order by 查询 ,感觉比较郁闷! 上网 一顿 google ......
import  bsddb
db 
=  bsddb.btopen( ' /tmp/spam.db ' ' c ' )
for  i  in  range( 10 ): db[ ' %d ' % i]  =   ' %d ' %  (i * i)

db[
' 3 ' #  9 
db.keys()  #  ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']

db.set_location(
' 6 ' #  36 
db.previous()  #  25 
db.next()  #  36
db.next()  #  47
这可以定位,并且 previous , next 什么的 (不过目前好像是针对 string 自然 排序!)
这里比较实用的 demo
import  bsddb
db 
=  bsddb.btopen( ' /tmp/spam2.db ' ' c ' )
db[
" 2009-08-14 22:00 " ] = " gg "
db[
" 2009-08-15 22:00 " ] = " cc "
db[
" 2009-07-15 00:00 " ] = " tt "
db[
" 2009-08-16 22:00 " ] = " gg "

#  注意 这 统配 等价 正则 = 2009-08-15.*  
#
 开始 以为能使用 正则 ,但不能 。只能简单的 xxx.* 形式的
db.set_location( ' 2009-08-15 ' )    #  ('2009-08-15 22:00', 'cc')
db.next()  #  ('2009-08-16 22:00', 'gg')

db.set_location(
' 2009-08-15 ' )    #  ('2009-08-15 22:00', 'cc')
db.previous()  # ('2009-08-14 22:00', 'gg')

本文转自博客园刘凯毅的博客,原文链接:Berkeley DB python btree,如需转载请自行联系原博主。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值