数据格式:pymongo数组插入

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据格式:pymongo数组插入相关的知识,希望对你有一定的参考价值。

我有一个想要存放在mongodb中的物体。使用PyMongo。

python中的对象结构:

obj = {
  field1: arrayOfArrays,
  field2: array
}

Mongo插入:

mongo.db.vectorPoints.insert_one(obj)

结构arrayOfArrays:

[
  array([0.04234, -0.23523, 0,234....]), 
  array([0.04234, -0.23523, 0,234....]), ...
]

结构数组:

[0.04234, -0.23523, 0,234....]

Mongo insert_one引发有关数据格式的错误:

bson.errors.InvalidDocument: Cannot encode object: array([0.04234, -0.23523, 0,234....

如何格式化'arrayOfArrays'和'array'以便允许'obj'插入mongo?

感谢您提供的任何建议。

arrayOfArrays的终端打印:enter image description here

阵列终端打印:enter image description here

mongo insert上的终端错误:enter image description here

答案

您需要将array转换为python builtin list类型:

obj_to_insert = {
    'field1': [list(arr) for arr in obj['field1']],
    'field2': list(obj['field2'])    
}

以上是关于数据格式:pymongo数组插入的主要内容,如果未能解决你的问题,请参考以下文章

将 Null 项插入集合 Mongodb (Pymongo)

pymongo处理ISODate格式日期

100天精通Python(进阶篇)——第40天:pymongo操作MongoDB数据库基础+代码实战

MongoDB pymongo模块 插入数据

使用 PyMongo 将 Pandas 数据框插入 mongodb

MongoDB---如何避免插入重复数据(pymongo)