我有一個由嵌套的內置原語(列表,字典)和不在項目中的類的實例組成的pickled結構,因此在取出過程中會導致錯誤。我並不關心這些對象,我希望能夠提取存儲在這個嵌套結構中的數值。有沒有辦法從文件中取消選中,並替換因導入問題導致的所有內容,例如None
?如何在pickle加載過程中將導致導入錯誤的對象替換爲None?
我試圖從Unpickler
繼承和覆蓋find_class(self, module, name)
返回Dummy
如果類不能被發現,但由於某種原因,我一直在後load reduce
越來越TypeError: 'NoneType' object is not callable
。
class Dummy(object):
def __init__(self, *argv, **kwargs):
pass
我想是這樣
class RobustJoblibUnpickle(Unpickler):
def find_class(self, _module, name):
try:
super(RobustJoblibUnpickle, self).find_class(_module, name)
except ImportError:
return Dummy
你是說,你可以醃一個對象但不能取消它?這裏更廣泛的任務是什麼? – roganjosh
@roganjosh結構(清單的詞典列表)被醃製了一段時間,從那以後代碼庫發生了顯着變化;現在如果我試圖取消它,我面臨導入錯誤,因爲沒有像那裏使用的類,雖然我不需要存儲在那裏的對象,即使只有數值和字符串,我也會很好;所以,是的,廣泛的問題是,我不能undeckle它 –