Python使用Pickle保存字典报错:NameError问题求助
解决pickle保存字典时的NameError问题
这个错误的原因非常明确——你没有导入pickle库,并不是库本身有问题,只是代码里遗漏了关键的导入步骤而已。
你看你的代码开头只导入了re和os,但在save_obj函数里直接使用了pickle.dump(),Python自然找不到这个名称,所以抛出了NameError。
只需要在代码开头加上pickle的导入语句就能解决问题,修正后的代码片段如下:
import re import os import pickle # 新增这行导入 def save_obj(outputFolder,obj, name ): directory = outputFolder + ' obj/' if not os.path.exists(directory): os.makedirs(directory) with open(directory + name + '.pkl', 'wb') as f: pickle.dump(obj, f, pickle.HIGHEST_PROTOCOL)
简单补充一下:pickle是Python自带的标准库,不需要额外通过pip安装,只要在使用前用import pickle导入,就能正常调用它的所有方法了。以后写代码时,可以养成一个小习惯——先梳理清楚要用到的所有库,把对应的导入语句都放在代码开头,就能避免这类低级的NameError啦。
内容的提问来源于stack exchange,提问作者user2535338
相关产品推荐
相关产品推荐

