当熟悉 hash db
python bsddb (db-key 转)
使用确实很方便,但是没有 想 关系数据库中的 select order by 查询 ,感觉比较郁闷! 上网 一顿 google ......
这里比较实用的 demo
本文转自博客园刘凯毅的博客,原文链接:Berkeley DB python btree,如需转载请自行联系原博主。
使用确实很方便,但是没有 想 关系数据库中的 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 自然 排序!)
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
这里比较实用的 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')
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,如需转载请自行联系原博主。