変数をファイルに保存する方法を探しました (他の計算のために変数を永続化します)。
https://stackoverflow.com/a/899199/1846113のようないくつかの解決策を見つけまし たが、次のようなリストに実装すると:
import pickle
list = [['cccc',['asd','sdad','sdadas']],['cscc',['asd','sdad','sdadas']]]
pickle.dump(list, outfile)
それは私にこのエラーを与えます
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 1370, in dump
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 224, in dump
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 286, in save
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 600, in save_list
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 615, in _batch_appends
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 286, in save
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 600, in save_list
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 615, in _batch_appends
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 286, in save
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 739, in save_global
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/pickle.py", line 811, in whichmodule
TypeError: unhashable type: 'list'
誰が問題が何であるか知っていますか?または他のソリューション?
編集:ソリューション付き
問題は、リストの作成に誤りがあったことです。私はそれを投稿し(笑っていただけるように)、この愚かなエラーを回避します:(醜い)関数でリストのいくつかの要素を処理してリストを作成していました:
def process_element(doc):
processed_value = do_something(doc.pop())
return [doc.pop, processed_value]
すでにお気づきの方もいらっしゃると思いますが、出力を返すときにエラーが発生しました。
[doc.pop, processed_value]
ハッシュ可能でないメソッドをリストに追加したため、エラーが発生しました。正しいバージョンは次のとおりです。
def process_element(doc):
processed_value = do_something(doc.pop())
return [doc.pop(), processed_value]
ありがとう。