我想在MongoDB集合中插入一个新文档。
我的第一个输入是一个字符串,显示在这里:
{
"date" : ISODate("2013-10-06T18:11:26.329Z"),
"engines" : {},
"expiration_date" : ISODate("2013-10-06T18:11:36.329Z"),
"file_name" : "elad.elad",
"scan_status" : "TEST",
"task_id" : "4ce4ae9e-ef0a-476a-8189-92a5bfe328bd"
}
我正在用这个字符串创建一个bson.BSON对象:
b=bson.BSON(doc)
我正在尝试将它插入MongoDB中的我的集合中:
collection.insert(b)
但是我收到以下错误: TypeError:'str'对象不支持项目分配
有人知道这里有什么问题吗?
答案 0 :(得分:1)
您可以直接将字符串转换为BSON,您需要json.loads
或BSON.encode
方法。
您可以使用以下代码:
import datetime
from pymongo import MongoClient
db = MongoClient().test
collection = db.some
doc = {
"date" : datetime.datetime.strptime("2013-10-06T18:11:26.329Z", "%Y-%m-%dT%H:%M:%S.%fz"),
"engines" : {},
"expiration_date" : datetime.datetime.strptime("2013-10-06T18:11:36.329Z","%Y-%m-%dT%H:%M:%S.%fz"),
"file_name" : "elad.elad",
"scan_status" : "TEST",
"task_id" : "4ce4ae9e-ef0a-476a-8189-92a5bfe328bd"
}
collection.insert(doc)
这里我使用datetime对象将您的字符串日期转换为Python兼容日期时间