Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图在python中pickle一个列表_Python_Pickle - Fatal编程技术网

试图在python中pickle一个列表

试图在python中pickle一个列表,python,pickle,Python,Pickle,尝试使用pickle在python中保存整数列表,遵循许多源代码提供的确切方法,但我仍然遇到相同的错误。以下是简化版: import pickle a=[0,4,8,[3,5]] with open(blah.pickle, 'wb') as b: pickle.dump(a,b) 我总是会发现错误: NameError: name 'blah' is not defined 出了什么问题?您需要将其设置为字符串: import pickle a=[0,4,8,[3,5]] with

尝试使用pickle在python中保存整数列表,遵循许多源代码提供的确切方法,但我仍然遇到相同的错误。以下是简化版:

import pickle
a=[0,4,8,[3,5]]
with open(blah.pickle, 'wb') as b:
    pickle.dump(a,b)
我总是会发现错误:

NameError: name 'blah' is not defined

出了什么问题?

您需要将其设置为字符串:

import pickle
a=[0,4,8,[3,5]]
with open('blah.pickle', 'wb') as b:
    pickle.dump(a,b)

如果没有引号,Python将查找名为
blah
的变量,并尝试获取该对象的
pickle
属性。由于您从未将
blah
定义为变量,因此会出现
namererror

您从未使用
pickle
属性定义变量
blah
。如果您想让常量字符串
'blah.pickle'
成为结果文件的名称,当然,在其周围加上引号。。。!即:

with open('blah.pickle', 'wb') as b:

我尝试了我在kite.com上找到的这个方法,它对我非常有效

sample_list = [1, 2, 3]
file_name = "sample.pkl"

open_file = open(file_name, "wb")
pickle.dump(sample_list, open_file)
open_file.close()

open_file = open(file_name, "rb")
loaded_list = pickle.load(open_file)
open_file.close()

print(loaded_list)

#Outputs [1, 2, 3]

好吧,我忘了用引号把“blah.pickle”变成一个字符串,我真是太傻了,但在修复了它之后,它还是出了问题。现在,使用与该修复相同的代码,我得到:AttributeError:'module'对象没有属性'dump'。您发布的代码与该修复一起工作。在您的实际代码中一定还有其他奇怪的事情。你应该问另一个问题。我仍然有错误:AttributeError:'list'对象没有属性'to_pickle'