ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python-将二进制数据插入pymongo中的Mongo字段

2019-11-22 23:06:30  阅读:436  来源: 互联网

标签:mongodb encoding binaryfiles pymongo python


我正在尝试做一些我认为很琐碎的事情,所以请原谅我在其他地方是否有一些简单的解决方案.

我正在为一些内容索引编写测试,为此,我试图将一些二进制数据(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))

我设法在Pymongo Google组上找到了一个解决该问题的旧线程(https://groups.google.com/forum/#!topic/mongodb-user/uBAbY1wdQbs),但是我似乎找不到用于解决该问题的Binary对象,而且它似乎没有包含在Python中(我我使用2.7)

现在我遇到的问题是StringIO对象不是可序列化的JSON,这很明智,但是pymongo需要将有效的utf8对象传递给它.我尝试使用StringIO.getvalue()的base64编码,并且只是直接序列化相同的值.

当然,pdf不是utf8值,所以我想知道是否还有另一种方法让pymongo识别出我正在将其发送为原始二进制文件.任何帮助表示赞赏.

解决方法:

Google小组实际上是正确的,但是在那里的某个时间之后,二进制类已移至bson命名空间,因此您必须从那里将其导入.

文档页面上存在很好的示例:http://api.mongodb.org/python/current/api/bson/binary.html

标签:mongodb,encoding,binaryfiles,pymongo,python
来源: https://codeday.me/bug/20191122/2063429.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有