[Tutor] perplexing error with shelve REVISED
Orest Kozyar
orest.kozyar at gmail.com
Tue Oct 30 19:34:57 CET 2007
> Please post the entire traceback (omitting duplicate lines).
Sorry, I should have included the traceback. I've revised the sample script
so that it generates the traceback when run. The sample script is at the
very bottom of this email.
####### SCRIPT OUTPUT #######
[kozyar]:~$ python example.py
Successfully retrieved and parsed XML document with ID 16842423
Successfully shelved XML document with ID 16842423
Successfully retrieved and parsed XML document with ID 16842422
Traceback (most recent call last):
File "example.py", line 30, in <module>
data[badkey] = doc
File "/usr/lib64/python2.5/shelve.py", line 123, in __setitem__
p.dump(value)
RuntimeError: maximum recursion depth exceeded
Exception exceptions.RuntimeError: 'maximum recursion depth exceeded' in
<bound method DbfilenameShelf.__del__ of {'16842423':
<xml.dom.minidom.Document instance at 0x96f290>}> ignored
####### START SCRIPT #######
import urllib, shelve
from xml.dom import minidom
baseurl = 'http://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?'
params = {
'db': 'pubmed',
'retmode': 'xml',
'rettype': 'medline'
}
badkey = '16842422'
goodkey = '16842423' #or just about any other ID
data = shelve.open('data.tmp', writeback=True)
params['id'] = goodkey
url = baseurl + urllib.urlencode(params)
doc = minidom.parseString(urllib.urlopen(url).read())
print 'Successfully retrieved and parsed XML document with ID %s' % goodkey
data[goodkey] = doc
print 'Successfully shelved XML document with ID %s' % goodkey
params['id'] = badkey
url = baseurl + urllib.urlencode(params)
doc = minidom.parseString(urllib.urlopen(url).read())
print 'Successfully retrieved and parsed XML document with ID %s' % badkey
data[badkey] = doc
#Will fail on the above line
print 'Successfully shelved XML document with ID %s' % badkey
More information about the Tutor
mailing list