相关疑难解决方法(0)

pickle.dump遇到RuntimeError:cmp中超出了最大递归深度

我注意到它可能是由beautifulsoup或递归数据结构引起的.但是,导致错误的数据结构似乎没有问题:

class Movie:
def __init__(self, name="", dscore=0, mscore=0, durl="", murl=""): 
    self.name = name
    self.dscore = float(dscore)
    self.mscore = float(mscore)
    self.durl = durl
    self.murl = murl
def __str__(self):
    return unicode(self.name) + u' / ' + unicode(self.dscore) + u' / ' + unicode(self.mscore) \
        + u' / ' + unicode(self.durl) + u' / ' + unicode(self.murl)
Run Code Online (Sandbox Code Playgroud)

导致问题的陈述是:

DataDict['MovieInfo'] = MovieInfo
Run Code Online (Sandbox Code Playgroud)

pickle.dump(DataDict, f, True)
Run Code Online (Sandbox Code Playgroud)

以下是功能:

def SaveData():
global LinkUrlQueue
global MovieSet
global MovieInfo
global LinkUrlSet
global MovieUrlQueue
DataDict = {}
DataDict['LinkUrlSet'] = …
Run Code Online (Sandbox Code Playgroud)

python recursion pickle

4
推荐指数
1
解决办法
1841
查看次数

RuntimeError:Python 3.2 pickle.dump超出了最大递归深度

我使用下面的代码得到上述错误.错误发生在最后一行.请原谅主题,我只是练习我的蟒蛇技能.=)

from urllib.request import urlopen
from bs4 import BeautifulSoup
from pprint import pprint
from pickle import dump

moves = dict()
moves0 = set()
url = 'http://www.marriland.com/pokedex/1-bulbasaur'
print(url)
# Open url
with urlopen(url) as usock:
    # Get url data source
    data = usock.read().decode("latin-1")
    # Soupify
    soup = BeautifulSoup(data)
    # Find move tables
    for div_class1 in soup.find_all('div', {'class': 'listing-container listing-container-table'}):
        div_class2 = div_class1.find_all('div', {'class': 'listing-header'})
        if len(div_class2) > 1:
            header = div_class2[0].find_all(text=True)[1]
            # Take only moves from Level Up, TM / HM, …
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
1747
查看次数

标签 统计

python ×2

pickle ×1

recursion ×1