作者:伊利纯羊毛 | 来源:互联网 | 2023-05-19 10:26
我有一个像这样的字符串:
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 },
] }'
当我尝试将其插入mongoDB集合时,我收到以下错误:
TypeError:'str'对象不支持项目分配
我对如何将字符串转换为BSON无能为力,以便用它来执行插入.
我查看了bson_util
模块,但没有运气.
1> Neil Lunn..:
这不重要的不是BSON部分.MongoDB驱动程序将负责这一点.您的工作是将JSON转换为有效的python数据结构:
import json
data = json.loads(document)
collection.insert(data);
@ user2215331我认为一般来说,人们认为MongoDB语法是JSON只是因为这就是给出的例子,而且这与提供的"shell"有效,所以"太过追赶"了.JSON只是一种以序列化形式表示数据结构的方法.对BSON的翻译大致相同,只是它具有"类型"定义的概念,这在"强类型"语言中通常是必需的.正如我所说,这里的真正要点是使用您的"本机"语言方法在必要时描述数据结构.转换的工作取决于驱动程序.