私は、ネストされた組み込みプリミティブ(リスト、辞書)とプロジェクトにもうないクラスのインスタンスから成るピクルされた構造を持っています。そのため、unpickling中にエラーが発生します。私はこれらのオブジェクトを本当に気にしないので、このネストされた構造体に格納されている数値を抽出できたらいいと思います。ファイルから取り除く方法はありますか。輸入の問題で壊れたものはすべてNone
と置き換えてください。ピクルの読み込み中にインポートエラーの原因となるオブジェクトを[なし]に置き換える方法はありますか?
私はUnpickler
から継承したクラスが見つからない場合Dummy
を返すようにfind_class(self, module, name)
を上書きしようとしていたが、何らかの理由で私はその後load reduce
でTypeError: 'NoneType' object is not callable
を得続けます。
class Dummy(object):
def __init__(self, *argv, **kwargs):
pass
私はたぶん、あなたはtry
ブロックで例外をキャッチし、あなたがやりたいことができ
class RobustJoblibUnpickle(Unpickler):
def find_class(self, _module, name):
try:
super(RobustJoblibUnpickle, self).find_class(_module, name)
except ImportError:
return Dummy
はあなたができると言っていますオブジェクトをピックルしますが、ピックルしませんか?ここではもっと広い仕事は何ですか? – roganjosh
@roganjoshその構造(リストのdictsのリスト)は、しばらく前に漬け込み、その後コードベースが大幅に変更されました。今私はそれをunpickleしようとすると、そこに使用されているもののようなクラスがないので、私はインポートエラーに直面しますが、そこにオブジェクトを格納する必要はありませんが、数値と文字列だけでもうまくいくでしょう。だから、広範な問題は、私がそれをunpickleすることができないということです。 –