【问题标题】:data format: pymongo insert of array数据格式:数组的pymongo插入
【发布时间】:2019-09-04 14:33:01
【问题描述】:

我有一个对象希望存储在 mongo 中。使用 PyMongo。

python中的对象结构:

obj = {
  field1: arrayOfArrays,
  field2: array
}

蒙古插入:

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 的终端打印:

数组的终端打印:

mongo 插入时出现终端错误:

【问题讨论】:

  • 那些是 numpy 数组吗?

标签: python formatting pymongo


【解决方案1】:

你需要将array转换成python内置的list类型:

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

【讨论】:

    猜你喜欢
    • 2018-10-26
    • 1970-01-01
    • 1970-01-01
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-08
    • 2023-04-08
    • 2022-12-01
    相关资源
    最近更新 更多