Чтобы избежать получения KeyError
, используйте get
вместо скобок для доступа к атрибуту:
if soup.find('boardgame').get('subtypemismatch') != 'true':
Если элемент не имеет атрибута, get
возвращает None
.Вы также можете задать ему значение по умолчанию:
if soup.find('boardgame').get('subtypemismatch', 'false') != 'true':
И вы также можете использовать has_attr
для проверки существования атрибута без получения его значения:
soup = BeautifulSoup(text, 'xml')
for boardgame in soup.find_all('boardgame'):
if boardgame.has_attr('subtypemismatch'):
print('has attribute')
else:
print('does not have attribute')