Как проверить, содержится ли атрибут в XML? - PullRequest
0 голосов
/ 29 апреля 2018

Я получаю KeyError: 'About Me'. Я выяснил, что данные дампа Stackoverflow для пользователей содержат пользователя, у которого нет переменной AboutMe. Итерация через xml ['AboutMe'] работает нормально. Но если у какого-то пользователя нет переменной AboutMe, скрипт вылетает и выдает ошибку KeyError.

Я пытаюсь проверить, содержится ли AboutMe. Если это так, он должен напечатать AboutMe без HTML Tag.

Если он не содержится. Этой записи следует присвоить значение None.

Это мой код :

 if element['AboutMe'] is not None:
    cleanAboutMe = BeautifulSoup(element['AboutMe'], "lxml").text
    print(cleanAboutMe)
else:
    element = {'AboutMe':'None'}

Вывод , который я получаю:

This is a puppet test account I use to validate "regular user" stuff on the site
-- Jeff Atwood
Independent software engineer

I'm not takin' my sneakers off!
if element['AboutMe'] is not None:
KeyError: 'AboutMe'

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

Небольшое примечание: переменная Element работает нормально, но если я указываю на ключ AboutMe, я получаю сообщение об ошибке.

С наилучшими пожеланиями

Theeninfam

1 Ответ

0 голосов
/ 29 апреля 2018

Если элемент может не иметь этого атрибута, используйте element.get('AboutMe'), чтобы получить значение атрибута, или None, если атрибут отсутствует. get - это стандартная функция для реализаций ElementTree. https://docs.python.org/3/library/xml.etree.elementtree.html#xml.etree.ElementTree.Element.get

...