序列化、反序列化和Python RTree

3

我一直在调试一个使用 Python RTree 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对象?

1个回答

1

只需使用相同的文件名打开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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接