邮件解析:类型错误:parse() 至少需要 2 个参数(给出 2 个)

14 投票
2 回答
14203 浏览
提问于 2025-04-17 02:25

我在用Python调用一个内置函数来解析电子邮件时,遇到了以下错误。

txt = parser.Parser.parse(fd, headersonly=False)

我收到的错误信息是

TypeError: parse() takes at least 2 arguments (2 given).

有没有人能告诉我怎么解决这个问题吗?

2 个回答

17

我遇到了类似的错误,不过原因不一样:我指定了一个有默认值的参数,却忘了给一个没有默认值的参数传值。例如,

def greeting(name,root = "Hello, "):
    print root + name
greeting(root = "Good morning, ")

返回的结果是

TypeError: greeting() takes at least 1 argument (1 given)

这里的“1 given”指的是那个(可选)的“root”参数,但(必需的)“name”参数却被错误地省略掉了。

10

这是因为 .parse() 是一个实例方法,而不是类方法。

你可以尝试使用 Parser().parse(…),或者可能用到 email.message_from_file / email.message_from_string

撰写回答