在mongodb中插入python对象

在mongodb中插入python对象,python,json,mongodb,Python,Json,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, f

各位, 我只是花了大量的时间来查找这个——我应该错过一些基本的东西

我有一个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
做这件事最直接的方法是什么


谢谢

初始代码中的
值是多少

它应该是
dict
而不是类实例

这应该起作用:

postings.insert(posting.__dict__)

您正在对集合错误使用insert方法。在这里回顾:

您需要插入的是一个文档。它应该是一个带有键和值的dict。简单地尝试插入字符串是不合适的。dumps返回json格式的字符串。如果您只是为了获取dict而转储它,那么json步骤就没有必要了

准确插入文档的外观:

插入({“键”:“值”})


或者将类实例直接转换为要存储为文档的dict,然后插入它。它适用于json.dumps.loads(),因为这最终会给你一个命令。

很抱歉,我意识到我漏掉了一行,只是编辑了这个问题。天啊,没错。谢谢,错过了这么愚蠢的东西,我觉得很愚蠢。如何在这个问题中插入嵌套字典的外部?
postings.insert(posting.__dict__)