检查字符串是否在python中是有效的BSON

时间:2017-03-08 20:18:53

标签: python bson

我以前的方式是运行此功能

import bson 

def has_binary(d):
if type(d)==bson.Binary:
    return True
if type(d)==dict:
    for k,v in d.iteritems():
        if has_binary(v):
            return True
return False               

这不再有效,因为bson库没有属性' binary'

1 个答案:

答案 0 :(得分:1)

您似乎正在使用第三方py-bson,可能是由于pip install bson

https://github.com/py-bson

而不是mongodb支持python-bson pip install pymongo

https://github.com/mongodb/mongo-python-driver/tree/master/bson

注意安装:

  

可以使用pip安装PyMongo:

     

$ python -m pip install pymongo

     

不要安装“bson”软件包。 PyMongo有自己的bson   包;做“easy_install bson”安装第三方软件包   与PyMongo不兼容。

你可以切换到bson的mongodb版本,你的函数就可以正常工作,或者改变你的is_binary函数来适应pybson将所有内容解码为python2中的字符串和python3中的字节的事实。

https://github.com/py-bson/bson/blob/master/bson/codec.py#L303-L307