Подтвердить что ты не робот

Анализ по электронной почте: TypeError: parse() принимает не менее 2 аргументов (2 данных)

Я получаю следующую ошибку при вызове встроенной функции для синтаксического анализа электронной почты на Python.

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

И я получил ошибку

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

Может ли кто-нибудь сказать мне способ решить эту проблему?

4b9b3361

Ответ 1

Это потому, что .parse() - это метод экземпляра, а не метод класса.

Вместо этого попробуйте Parser().parse(…) или, возможно, email.message_from_file/email.message_from_string.

Ответ 2

Я получил ту же основную ошибку по другой причине: указав аргумент, который имеет значение по умолчанию, но забыл дать аргумент, который не имеет значения по умолчанию. Например,

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

возвращает

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

Здесь "1 данный" является аргументом (необязательный) "root", но аргумент "name" ( required) был ошибочно опущен.