2015-10-01 22 views
2

我一直在試圖在使用Pythons RTree version 0.8.2的軟件包中調試一些奇怪的行爲。序列化和反序列化以及Python RTree

爲了追蹤問題,我需要每隔幾分鐘對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

剛剛從相同的文件名打開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