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

Python用html2text解析邮件时传入bytes仍报需类字节对象错误如何解决

问题原因

html2text库的html2text()方法要求输入为字符串类型,你传入的bytes类型会导致库内部字符串替换操作的类型匹配失败,触发TypeError。

修复步骤
  1. 首先修正邮件对象解析的错误
    你当前代码中message = email.message_from_string(str(data[0][1]))存在逻辑问题:data[0][1]本身是bytes类型,直接强转str会将bytes的b''标记带入内容,导致后续解析异常。
    修改为:
message = email.message_from_bytes(data[0][1])
  1. 给HTML字节流做编码解码后再传入html2text
    获取邮件内容对应的编码,将bytes解码为字符串后再调用html2text,替换原有调用行:
# 原有代码
# _html = part.get_payload(decode = True)
# print(type(_html)) 
# res['Text'] = html2text.html2text(_html)

# 修改为
_html = part.get_payload(decode = True)
charset = part.get_content_charset() or 'utf-8' # 优先取邮件声明的编码,无则默认utf-8
_html_str = _html.decode(charset, errors='replace') # 编码错误时用占位符替代避免崩溃
res['Text'] = html2text.html2text(_html_str)

内容的提问来源于stack exchange,提问作者TMac

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:54:03