python中BSON模块使用详解
  TEZNKK3IfmPf 2023年11月13日 43 0

        下载PyMongo模块时 它会有一个相对应bson模块 也就是说 PyMongo模块的实现是基于和它一起的bson模块的
        该bson模块 并非我们用 pip install bson 安装的 bson。

        BSON是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象,但是BSON有JSON没有的一些数据类型,如Date和BinData类型;
BSON有三个特点:轻量性、可遍历性、高效性,但是空间利用率不是很理想
MongoDB使用了BSON这种结构来存储数据和网络数据交换;

示例代码1:

import bson

json = {
    "title": "MongoDB",
    "last_editor": "192.168.1.122",
    "last_modified": "new Date('27/06/2011')",
    "body": "MongoDB introduction",
    "categories": ["Database", "NoSQL", "BSON"],
    "revieved": "false"
}

ret = bson.encode(json)
print(ret)

res = bson.decode(ret)
print(res)

运行结果:

python中BSON模块使用详解

示例代码2:

import bson

json = {
    "name": "zhrb",
    "age": "25",
    "address": {
        "country": "china",
        "city": "bj",
        "code": 100000
    },
    "scores": [
        {"name": "english", "grade": 99},
        {"name": "chinese", "grade": 100}
    ]
}

ret = bson.encode(json)
print(ret)

res = bson.decode(ret)
print(res)

运行结果:

python中BSON模块使用详解

示例代码3:

import collections
import bson
from bson.codec_options import CodecOptions

data = bson.BSON.encode({'a': 1})
print(data)
decoded_doc = bson.BSON.decode(data)
print(decoded_doc)

options = CodecOptions(document_class=collections.OrderedDict)
print(options)
decoded_doc = bson.BSON.decode(data, codec_options=options)
print(type(decoded_doc))
print(decoded_doc)

运行结果:

python中BSON模块使用详解

示例代码4:

import collections
import bson
from bson.codec_options import CodecOptions

data = {
    "name": "zhrb",
    "age": "25",
    "address": {
        "country": "china",
        "city": "bj",
        "code": 100000
    },
    "scores": [
        {"name": "english", "grade": 99},
        {"name": "chinese", "grade": 100}
    ]
}
data = bson.BSON.encode(data)
print(data)
decoded_doc = bson.BSON.decode(data)
print(decoded_doc)

options = CodecOptions(document_class=collections.OrderedDict)
print(options)
decoded_doc = bson.BSON.decode(data, codec_options=options)
print(type(decoded_doc))
print(decoded_doc)

运行结果:

python中BSON模块使用详解

参考博文:

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   36   0   0 python开发语言
  TEZNKK3IfmPf   2024年05月31日   27   0   0 python
  TEZNKK3IfmPf   2024年05月31日   28   0   0 python
TEZNKK3IfmPf