pytables 本身不支持 python 字典。我处理它的方法是创建以下形式的数据结构:
tables_dict = {
'key' : tables.StringCol(itemsize=40),
'value' : tables.Int32Col(),
}
(请注意,我确保键的长度
file_handle.createTable('/', 'dictionary', tables_dict)
然后用以下内容填充它:
file_handle.dictionary.append(dictionary.items())
并通过以下方式检索数据:
dict(file_handle.dictionary.read())
这工作正常,但是读回字典的速度非常慢。我认为问题在于read()
函数导致整个字典加载到内存中,这实际上是没有必要的。有一个更好的方法吗?
您可以要求 PyTables 在表内搜索,并在键列上创建索引以加快速度。
创建索引:
table.cols.key.createIndex()
查询其中的值key
等于变量search_key
:
[row['value'] for row in table.where('key == search_key')]
http://pytables.github.com/usersguide/optimization.html#searchoptim http://pytables.github.com/usersguide/optimization.html#searchoptim
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)