邮件解析:类型错误:parse() 至少需要 2 个参数(给出 2 个)
我在用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。