Python转换BSON文件中字节为字符串遇问题求助
解决BSON文件读取与字节转字符串问题
先修复TypeError报错
你碰到的TypeError: descriptor 'decode' for 'bytes' objects doesn't apply to a 'str' object,是因为读取文件时用了文本模式('r'),得到的是字符串而非字节。必须改用二进制模式打开文件:with open('你的文件.bson', 'rb') as f: bytes_content = f.read()这样
bytes_content才是真正的字节类型,能正常调用decode方法。不要直接转字符串,用BSON专用解析库处理
BSON是MongoDB的二进制文档格式,包含大量非打印控制字符,直接转字符串要么无输出要么乱码,正确做法是用专门的解析工具:- 先安装依赖库:
pip install pymongo - 解析BSON文件:
from bson import decode_all with open('你的文件.bson', 'rb') as f: # 解析多个文档用decode_all,单个文档用decode_one docs = decode_all(f.read()) # 打印解析后的可读文档 for doc in docs: print(doc)
- 先安装依赖库:
解释转字符串无输出的原因
BSON字节流里包含大量无法打印的二进制标记,即便用latin-1或cp437转成字符串,这些标记也不会显示,所以你看不到输出——这不是编码问题,是处理方向错了。
内容的提问来源于stack exchange,提问作者Women_it_2022
相关产品推荐
相关产品推荐

