I have a string like this:
我有一个像这样的字符串:
document = '{ time : 14/09/19 16:00:00,
global : { full:190 , defects: 7 , btp: 6 , total: 202 } ,
domains : [ { domain : "A" , full:7 , defects: 2 , btp: 0 , total: 9 },
{ domain : "B" , full:0 , defects: 0 , btp: 0 , total: 0 },
{ domain : "C" , full:6 , defects: 0 , btp: 0 , total: 6 },
{ domain : "D" , full:26 , defects: 0 , btp: 2 , total: 28 },
{ domain : "E" , full:0 , defects: 0 , btp: 0 , total: 0 },
{ domain : "F" , full:4 , defects: 0 , btp: 2 , total: 6 },
{ domain : "G" , full:0 , defects: 0 , btp: 0 , total: 0 },
{ domain : "H" , full:21 , defects: 0 , btp: 1 , total: 22 },
{ domain : "I" , full:32 , defects: 0 , btp: 0 , total: 32 },
] }'
When I try to insert this into a mongoDB collection, I get the following error:
当我尝试将其插入到mongoDB集合中时,我收到以下错误:
TypeError: 'str' object does not support item assignment
TypeError:'str'对象不支持项目分配
I am clueless about how to convert a string to BSON, in order to execute the insert with it.
我对如何将字符串转换为BSON无能为力,以便用它来执行插入。
I looked in the bson_util
module, but no luck.
我查看了bson_util模块,但没有运气。
2 个解决方案
#1
6
It's not the BSON part that matters here. The MongoDB driver will take care of that. Your job is convert JSON to a valid python data structure:
这不重要的不是BSON部分。 MongoDB驱动程序将负责这一点。您的工作是将JSON转换为有效的python数据结构:
import json
data = json.loads(document)
collection.insert(data);
#2
1
You rarely have to deal with BSON directly yourself. This is just the format that mongo uses to represent the data internally.
你很少直接自己处理BSON。这只是mongo用于在内部表示数据的格式。
As a user of the database or one of it's clients, you only need to deal with key:value
type objects we talk about as documents. In python, key:value
like objects are most commonly dict
objects; A dictionary. You'll need to convert that string into an actual dict-like-object before inserting it into mongo.
作为数据库的用户或其中一个客户端,您只需要处理我们作为文档谈论的键:值类型对象。在python中,key:像对象一样的值最常见于dict对象;一本字典。在将该字符串插入mongo之前,您需要将该字符串转换为实际的类似dict的对象。
One example of this would be to use the json
module:
这方面的一个例子是使用json模块:
>>> import json
>>> document = json.loads('{ time : 14/09/19 16:00:00...')
You can now have the document
object inserted into your collection.
您现在可以将文档对象插入到集合中。
#1
6
It's not the BSON part that matters here. The MongoDB driver will take care of that. Your job is convert JSON to a valid python data structure:
这不重要的不是BSON部分。 MongoDB驱动程序将负责这一点。您的工作是将JSON转换为有效的python数据结构:
import json
data = json.loads(document)
collection.insert(data);
#2
1
You rarely have to deal with BSON directly yourself. This is just the format that mongo uses to represent the data internally.
你很少直接自己处理BSON。这只是mongo用于在内部表示数据的格式。
As a user of the database or one of it's clients, you only need to deal with key:value
type objects we talk about as documents. In python, key:value
like objects are most commonly dict
objects; A dictionary. You'll need to convert that string into an actual dict-like-object before inserting it into mongo.
作为数据库的用户或其中一个客户端,您只需要处理我们作为文档谈论的键:值类型对象。在python中,key:像对象一样的值最常见于dict对象;一本字典。在将该字符串插入mongo之前,您需要将该字符串转换为实际的类似dict的对象。
One example of this would be to use the json
module:
这方面的一个例子是使用json模块:
>>> import json
>>> document = json.loads('{ time : 14/09/19 16:00:00...')
You can now have the document
object inserted into your collection.
您现在可以将文档对象插入到集合中。