我运行了5,693次回归并希望保存输出,因为它需要几个小时才能运行。我在名为res
的列表中捕获了它,对象(如果重要)是来自包MarkovRegressionResultsWrapper
的{{1}}对象。
我认为要走的路是泡菜。我保存到私人目录供我自己使用,所以安全性不是问题,JSON似乎不适用于对象(我是新的,所以这可能是错的?)。
这是一个我发现工作正常的例子:
statsmodels
但是,当我使用完全相同的代码,但保存我的列表res时,它会出错:
import pickle
a = ['test value','test value 2','test value 3']
file_Name = "testfile"
# open the file for writing
fileObject = open(file_Name,'wb')
# this writes the object a to the
# file named 'testfile'
pickle.dump(a,fileObject)
# here we close the fileObject
fileObject.close()
我在Macbook Pro上使用Python 3.6和Jupyter Notebook。 file_Name = "testfile"
# open the file for writing
fileObject = open(file_Name,'wb')
# this writes the object a to the
# file named 'testfile'
pickle.dump(res,fileObject)
# here we close the fileObject
fileObject.close()
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-43-ab4800ac1a51> in <module>()
7 # this writes the object a to the
8 # file named 'testfile'
----> 9 pickle.dump(res,fileObject)
10
11 # here we close the fileObject
OSError: [Errno 22] Invalid argument
和a
都是类型列表,因此唯一不同的是列表包含的内容。为什么我收到此错误?这是保存此对象列表的最佳方法,还是应该做一些不同的事情?
答案 0 :(得分:2)
@ChristianDean在评论中提供了答案。这与Mac OSX上的Python 3.6中的pickle
中的已知错误有关。
Python 3 - Can pickle handle byte objects larger than 4GB?