python中BSON模块使用详解

本文介绍了BSON(Binary JSON)——一种用于MongoDB的数据存储格式,它是JSON的二进制形式,支持更多数据类型,并在MongoDB中用于存储和网络交换。示例代码展示了如何使用Python的PyMongo库进行BSON的编码和解码,强调了其在数据处理中的应用。BSON的特点包括轻量性、可遍历性和高效性,但空间利用率不高。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        下载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)

运行结果:

示例代码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)

运行结果:

示例代码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)

运行结果:

示例代码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)

运行结果:

参考博文:

BSON和JSON的区别_Reborn_Chang的博客-CSDN博客_bson和json区别

Python之读取MongoDB导出的BSON文件_山阴少年的博客-CSDN博客_bson文件

官方文档:bson – BSON (Binary JSON) Encoding and Decoding — PyMongo 3.4.0 documentation

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值