You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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的二进制文档格式,包含大量非打印控制字符,直接转字符串要么无输出要么乱码,正确做法是用专门的解析工具:

    1. 先安装依赖库:
      pip install pymongo
      
    2. 解析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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 01:55:11