開発中に SOAP サーバーに繰り返しアクセスすることを避けるために、毎回サーバーにクエリを実行することなく残りのコードを実行できるように、結果をキャッシュしようとしています。
以下のコードではPicklingError: Can't pickle <class suds.sudsobject.AdvertiserSearchResponse at 0x03424060>: it's not found as suds.sudsobject.AdvertiserSearchResponse
、泡の結果をピクルしようとすると が得られます。これは、クラスが動的に作成されるためだと思います。
import pickle
from suds.client import Client
client = Client(...)
result = client.service.search(...)
file = open('test_pickle.dat', 'wb')
pickle.dump(result, file, -1)
file.close()
-1
からプロトコル バージョン を削除するpickle.dump(result, file, -1)
と、別のエラーが発生します。
TypeError: a class that defines __slots__ without defining __getstate__ cannot be pickled
ピクルスは正しいことですか?私はそれを機能させることができますか?より良い方法はありますか?