Вставить объект python в mongodb

Народ, Я только что потратил много времени, пытаясь найти это --, я должен упустить что-то основное.

У меня есть объект python, все, что я хочу сделать, это вставить этот объект в mondodb.

Это то, что у меня есть:

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)

выдает эту ошибку:

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

Похоже, это потому, что json.dumps ()возвращает строку.

Теперь, если я выполняю загрузку значения перед вставкой, оно работает нормально.:

posting = Posting('objectlink1')
value = json.dumps(posting, default=lambda x:x.__dict__)
value = json.loads(value)
postings.insert(value)

Как проще всего -сделать это?

Спасибо!

5
задан helpmelearn 24 April 2012 в 05:54
поделиться