【问题标题】:Check if a string is valid BSON in python在python中检查字符串是否是有效的BSON
【发布时间】:2017-03-13 21:51:10
【问题描述】:

我以前这样做的方式是运行这个函数

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'

【问题讨论】:

标签: python bson


【解决方案1】:

您似乎在使用第 3 方 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

注意安装:

PyMongo 可以用 pip 安装:

$ python -m pip install pymongo

不要安装“bson”包。 PyMongo 自带 bson 包裹;执行“easy_install bson”会安装一个第三方包 与 PyMongo 不兼容。

您可以切换到 mongodb 版本的 bson 并且您的函数将简单地工作,或者更改您的 is_binary 函数以适应 pybson 将所有内容解码为 python2 中的字符串和 python3 中的字节的事实。

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

【讨论】:

    猜你喜欢
    • 2011-07-27
    • 2013-02-13
    • 1970-01-01
    • 2021-10-10
    • 2019-05-05
    • 2019-10-04
    • 1970-01-01
    • 2018-10-12
    • 2022-01-19
    相关资源
    最近更新 更多