我正在使用pickle通过转储root来保存对象图.当我加载根时,它具有所有实例变量和连接的对象节点.但是我将所有节点保存在字典类型的类变量中.在保存之前,类变量已满,但在取消数据后,它变为空.
这是我正在使用的课程:
class Page():
__crawled = {}
def __init__(self, title = '', link = '', relatedURLs = []):
self.__title = title
self.__link = link
self.__relatedURLs = relatedURLs
self.__related = []
@property
def relatedURLs(self):
return self.__relatedURLs
@property
def title(self):
return self.__title
@property
def related(self):
return self.__related
@property
def crawled(self):
return self.__crawled
def crawl(self,url):
if url not in self.__crawled:
webpage = urlopen(url).read()
patFinderTitle = re.compile('<title>(.*)</title>')
patFinderLink = re.compile('<link rel="canonical" href="([^"]*)" />')
patFinderRelated = re.compile('<li><a href="([^"]*)"')
findPatTitle = re.findall(patFinderTitle, webpage)
findPatLink = re.findall(patFinderLink, …Run Code Online (Sandbox Code Playgroud) 我有一个使用Queue对象列表的类.我需要挑选这个类,包括保存在队列对象中的信息.例如:
import Queue
import pickle
class QueueTest(object):
def __init__(self):
self.queueList = []
def addQueue(self):
q = Queue.Queue()
q.put('test')
self.queueList.append(q)
obj = QueueTest()
obj.addQueue()
with open('pickelTest.dat','w') as outf:
pickle.dump(obj,outf)
Run Code Online (Sandbox Code Playgroud)
返回错误
raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle lock objects
Run Code Online (Sandbox Code Playgroud)
是否有工作来挑选Queue对象?