我的第一个 mongo 插入 (python)

My first mongo insertion (python)

正在尝试插入我的第一条数据,如下所示:

{
    "city": "Oakland", 
    "latitude": "37.800427", 
    "longitude": "-122.275880", 
    "state": "California", 
    "zipcode": "94607"
}

当我打电话时:

def establish_client(self):
    self.client = MongoClient('localhost', 27017)
    self.db = self.client['props']

def insert_mongo(self,property_arg):
    props = self.db.props
    props.insert(property_arg) #err line

我收到以下错误消息:

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevd_comm.py", line 930, in doIt
    result = pydevd_vars.evaluateExpression(self.thread_id, self.frame_id, self.expression, self.doExec)
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevd_vars.py", line 239, in evaluateExpression
    Exec(expression, updated_globals, frame.f_locals)
  File "C:\Program Files (x86)\JetBrains\PyCharm Community Edition 3.4.1\helpers\pydev\pydevd_exec.py", line 3, in Exec
    exec exp in global_vars, local_vars
  File "<string>", line 1, in <module>
  File "C:\Anaconda\lib\site-packages\pymongo\collection.py", line 409, in insert
    gen(), check_keys, self.uuid_subtype, client)
  File "C:\Anaconda\lib\site-packages\pymongo\collection.py", line 386, in gen
    doc['_id'] = ObjectId()
TypeError: 'str' object does not support item assignment

什么给了?

我要插入的对象是由 class 本身中嵌入的以下函数生成的:

def to_JSON(self):
    return json.dumps(self, default=lambda o: o.__dict__,
        sort_keys=True, indent=4)

您不需要将字典转储到 JSON 字符串中,只需将字典本身传递给 insert()

来自 tutorial 的引述应该澄清:

Data in MongoDB is represented (and stored) using JSON-style documents. In PyMongo we use dictionaries to represent documents.