Ludzie, Po prostu spędziłem dużo czasu, próbując to sprawdzić - powinienem brakować czegoś podstawowego.Wstaw obiekt python w mongodb
Mam obiekt Pythona, wszystko co chcę zrobić to wstawić ten obiekt w mondodb.
To jest to, co mam:
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)
rzuca ten błąd:
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
Wydaje się to dlatego json.dumps() zwraca ciąg znaków.
Teraz gdybym rób mnóstwo wartości przed włożeniem to działa dobrze:
posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
value = json.loads(value)
postings.insert(value)
Co jest najbardziej prosta to zrobić?
Dzięki!
Przepraszam, że zdałem sobie sprawę, że przegapiłem linię, właśnie zredagowałem pytanie. – helpmelearn
Ale jaki jest sens używania klasy 'Posting'? – San4ez
Jezu, to prawda. Dzięki, czuję się głupio, że przegapiłem coś tak głupiego. – helpmelearn