Gente, Acabo de pasar una buena cantidad de tiempo intentando buscar esto - Debería perderme algo básico.Insertar objeto python en mongodb
Tengo un objeto python, todo lo que quiero hacer es insertar este objeto en mondodb.
Esto es lo que tengo:
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)
tiros este error:
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
Parece que se debe a json.dumps() devuelve una cadena.
Ahora bien, si yo hago un montón de valor antes de insertarlo funciona bien:
posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
value = json.loads(value)
postings.insert(value)
Qué es lo más recta hacia adelante para hacer esto?
Gracias!
Lo siento, me di cuenta de que me perdí una línea allí, solo edité la pregunta. – helpmelearn
¿Pero de qué sirve usar la clase 'Posting'? – San4ez
Por Dios, eso es correcto. Gracias, se siente estúpido por haber perdido algo tan tonto. – helpmelearn