我的第一个 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.
正在尝试插入我的第一条数据,如下所示:
{
"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.