我一直试图在一个使用Pythons RTree version 0.8.2的软件包中调试一些奇怪的行为。
为了跟踪问题,我需要每隔几分钟序列化一次RTree实例,当问题发生时,我可以得到RTree的相当精确的快照。
我正在使用以下转储代码:
def _dump_tree(self, filename, tree):
try:
dump_file = Rtree(filename)
for item in tree.intersection(tree.bounds, objects=True):
dump_file.insert(item.id, item.bbox, item.object)
except RTreeError:
pass
此函数获取RTree并将其复制到具有给定文件名的新RTree。
每次调用都会创建以下对:
2015-10-01---14-21-16_items.dat
2015-10-01---14-21-16_items.idx
...
如何将
dat
/idx
对反序列化回Python对象? 最佳答案
只需从同一文件名打开RTree:
>>> from rtree import index
>>> idx = index.Index('2015-10-01---14-21-16_items')
>>> idx.count(idx.bounds)
42 # The number of items you had in the original tree