Sla*_*off 6 python encoding binaryfiles mongodb pymongo
我正在尝试做一些我觉得微不足道的事情,所以如果其他地方有一些简单的解决方案,请原谅我。
我正在为一些内容索引编写测试,为此我试图将一些二进制数据(pdf)插入到我拥有的 mongo 集合中。但是,我在这方面遇到了很多麻烦。这是我相关代码的当前状态
pseudo_file = StringIO()
pdf = pisa.CreatePDF("This is a test", pseudo_file)
test = {"data": pseudo_file}
test.update({"files_id": {"name": "random_asset_name"}, "category": "asset"})
self.chunk_collection.insert(json.dumps(test))
Run Code Online (Sandbox Code Playgroud)
我设法在 Pymongo google group 上找到了一个解决这个问题的旧线程(https://groups.google.com/forum/#!topic/mongodb-user/uBAbY1wdQbs),但我似乎找不到Binary对象用于解决该问题,它似乎没有包含在 Python 中(我使用的是 2.7)
现在我遇到的问题是该StringIO对象不是 JSON 可序列化的,这是明智的,但 pymongo 需要一个有效的 utf8 对象传递给它。我尝试使用 base64 编码StringIO.getvalue(),并直接序列化相同的值。
当然,pdf 不是 utf8 值,所以我想知道是否有另一种方法让 pymongo 识别出我正在向它发送原始二进制文件。任何帮助表示赞赏。
谷歌小组实际上是正确的,但是,在那儿发布帖子后的某个时间,该binary课程被转移到了bson命名空间,因此您必须从那里导入它。
文档页面上有很好的示例:http://api.mongodb.org/python/current/api/bson/binary.html
| 归档时间: |
|
| 查看次数: |
11693 次 |
| 最近记录: |