【发布时间】:2013-05-10 11:16:06
【问题描述】:
我有一个系统可以从各种来源读取数据并将它们存储在 MongoDB 中。我收到的数据已经用 utf-8 或 unicode 正确编码。文档是松散相关的,并且在 schema 中变化很大,如果您愿意的话。
文档有时会有一个纯二进制数据的字段值,例如 JPEG 图像。我知道如何将该值包装在 bson.binary.Binary 对象中以避免 bson.errors.InvalidStringData 异常。
有没有办法判断文档的哪个部分使 pymongo 驱动程序引发bson.errors.InvalidStringData,或者我必须尝试转换每个字段才能找到它?
(+如果一个二进制对象碰巧是一个有效的 unicode 字符串或 utf-8,它将被存储为一个字符串,这没关系)
【问题讨论】:
-
您能否请注意 pymongo 在您的情况下何时抛出
InvalidStringData?我之所以问,是因为您说过数据是用 UTF-8 编码的,但是,正如文档所述,在读取非 UTF8 数据时会引发此错误 (docs)。谢谢。 -
当文档具有纯二进制数据的字段值时,例如 JPEG 图像或 X509 证书。我从来没有在字符串上遇到这个错误。
标签: mongodb exception pymongo bson