J'essaie de mettre certains sites que j'ai rampés dans une étagère, mais le shelve n'acceptera aucun objet Site. Il acceptera les listes, les chaînes, les tuples, ce que vous avez, mais dès que je mets un objet Site, il se bloque quand j'essaye d'obtenir le contenu de l'étagèreshelve donne une erreur étrange
Alors quand je remplis mon étagère comme ceci :
def add_to_shelve(self, site):
db = shelve.open("database")
print site, site.url
for word in site.content:
db[word] = site.url #site.url is a string, word has to be one too
shelve.open("database")['whatever']
fonctionne parfaitement.
Mais si je fais ceci:
def add_to_shelve(self, site):
db = shelve.open("database")
print site, site.url
for word in site.content:
db[word] = site #site is now an object of Site
shelve.open("database")['whatever']
erreurs avec ce message d'erreur:
AttributeError: 'module' object has no attribute 'Site'
Je suis complètement déconcerté, et les pythondocs, étrangement, ne pas beaucoup d'info non plus. Tout ce qu'ils disent est que la clé dans un shelve doit être une chaîne, mais la valeur ou les données peuvent être "un objet arbitraire"