Insertar objeto python en mongodb
Amigos, acabo de pasar una buena cantidad de tiempo tratando de buscar esto. Debería faltar algo básico.
Tengo un objeto python, todo lo que quiero hacer es insertar este objeto en mondodb.
Esto es lo que tengo:
<code>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) </code>
arroja este error:
<code>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 </code>
Parece que es porque json.dumps () devuelve una cadena.
Ahora bien, si hago una carga del valor antes de insertarlo, funciona bien:
<code>posting = Posting('objectlink1') value = json.dumps(posting, default=lambda x:x.__dict__) value = json.loads(value) postings.insert(value) </code>
¿Qué es lo más directo para hacer esto?
¡Gracias!