Folks, Je viens de passer un bon moment à chercher ça - il me manque quelque chose de basique.Insérer un objet python dans mongodb
J'ai un objet python, tout ce que je veux faire est d'insérer cet objet dans mondodb.
C'est ce que j'ai:
from pymongo import Connection
import json
conn = Connection()
db = conn.cl_database
postings = db.postings_collection
class Posting(object):
def __init__(self, link, found=None, expired=None):
self.link = link
self.found = found
self.expired = expired
posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
postings.insert(value)
jette cette erreur:
Traceback (most recent call last):
File "./mongotry.py", line 21, in <module>
postings.insert(value)
File "build/bdist.macosx-10.7-intel/egg/pymongo/collection.py", line 302, in insert
File "build/bdist.macosx-10.7-intel/egg/pymongo/database.py", line 252, in _fix_incoming
File "build/bdist.macosx-10.7-intel/egg/pymongo/son_manipulator.py", line 73, in transform_incoming
TypeError: 'str' object does not support item assignment
On dirait que c'est parce que json.dumps() retourne une chaîne.
Maintenant, si je fais une charge de la valeur avant de l'insérer fonctionne très bien:
posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
value = json.loads(value)
postings.insert(value)
Quel est le plus simple pour le faire?
Merci!
Désolé je me suis rendu compte que j'ai raté une ligne, juste édité la question. – helpmelearn
Mais à quoi ça sert d'utiliser la classe 'Posting'? – San4ez
Jeez, c'est vrai. Merci, sentez-vous stupide d'avoir manqué quelque chose d'aussi bête. – helpmelearn