【发布时间】:2010-10-10 18:05:19
【问题描述】:
我正在寻找东京内阁表引擎的 python 绑定。我尝试了Pytc,但只能找到 Hash 和 B-tree 引擎支持。还有其他可用的绑定吗?
【问题讨论】:
标签: python tokyo-cabinet
我正在寻找东京内阁表引擎的 python 绑定。我尝试了Pytc,但只能找到 Hash 和 B-tree 引擎支持。还有其他可用的绑定吗?
【问题讨论】:
标签: python tokyo-cabinet
一年多来,我一直在监视(有时还改进)各种 Python 绑定,因此这里有一个符合您的标准的最佳绑定的更新列表。
有许多陈旧和/或不完整的替代方案。
【讨论】:
我的 pytc 分支“tc”确实支持表 (TDB) http://github.com/rsms/tc
基本示例:
>>> import tc
>>> db = tc.TDB("slab.tdb", tc.TDBOWRITER | tc.TDBOCREAT)
>>> db.put('some key', {'name': 'John Doe', 'age': '45', 'city': u'Internets'})
>>> rec = db.get('some key')
>>> print rec['name']
John Doe
执行查询:
>>> import tc
>>> db = tc.TDB("slab.tdb", tc.TDBOWRITER | tc.TDBOCREAT)
>>> db.put('torgny', {'name': 'Torgny Korv', 'age': '31', 'colors': 'red,blue,green'})
>>> db.put('rosa', {'name': 'Rosa Flying', 'age': '29', 'colors': 'pink,blue,green'})
>>> db.put('jdoe', {'name': 'John Doe', 'age': '45', 'colors': 'red,green,orange'})
>>> q = db.query()
>>> q.keys()
['torgny', 'rosa', 'jdoe']
>>> q.filter('age', tc.TDBQCNUMGE, '30')
>>> q.keys()
['torgny', 'jdoe']
>>> q.filter('colors', tc.TDBQCSTROR, 'blue')
>>> q.keys()
['torgny']
>>> # new query:
>>> q = db.query()
>>> q.order('name') # Ascending order by default
>>> q.keys()
['jdoe', 'rosa', 'torgny']
>>> q.order(type=tc.TDBQONUMASC, column='age')
>>> q.keys()
['jdoe', 'torgny', 'rosa']
TDB 单元测试中的更多示例:http://github.com/rsms/tc/blob/master/lib/tc/test/tdb.py
【讨论】:
下面是使用 PyTyrant 实现的查表引擎:
【讨论】:
我联系了 tc 的作者,他告诉我以下内容:
目前,表 (tdb) 驱动程序 存在于master branch (unit tests) 和fdb driver 是 正在一个单独的分支中开发。
我尝试了桌子驱动程序进行了一次小型测试,并成功,我计划很快在更大的桌子上尝试它。
【讨论】:
【讨论】: