Gente, Ho appena trascorso una buona quantità di tempo cercando di cercare questo - mi dovrebbe mancare qualcosa di base.Inserisci oggetto python in mongodb
Ho un oggetto Python, tutto quello che voglio fare è inserire questo oggetto in mondodb.
Questo è quello che ho:
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)
tiri questo errore:
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
Sembra che sia perché json.dumps() restituisce una stringa.
Ora, se io faccio un sacco di valore prima di inserirla funziona bene:
posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
value = json.loads(value)
postings.insert(value)
Qual è la straight-forward più per fare questo?
Grazie!
Scusa mi sono reso conto di essermi perso una riga, ho appena modificato la domanda. – helpmelearn
Ma che senso ha usare la classe "Posting"? – San4ez
Cribbio, è vero. Grazie, sentiti stupido di aver perso qualcosa di così sciocco. – helpmelearn