如何检查XML中是否包含属性?解决KeyError: 'About Me'问题
解决KeyError: 'About Me'的实用方案
嗨,这问题我熟!StackOverflow的用户转储数据里确实经常有缺失字段的情况,直接硬取xml['AboutMe']肯定会炸。给你两种靠谱的解决思路,还附带HTML标签清理的方法:
方法一:用字典get()方法(最简洁)
Python字典的get()方法天生就是用来处理这种键可能不存在的场景——如果键存在就返回对应值,不存在默认返回None,完美适配你的需求:
from bs4 import BeautifulSoup # 遍历每个用户元素时的处理逻辑 # 安全获取AboutMe,不存在则返回None about_me_raw = xml.get('AboutMe') if about_me_raw: # 用BeautifulSoup去除HTML标签,得到纯文本 about_me_clean = BeautifulSoup(about_me_raw, "html.parser").get_text(strip=True) else: about_me_clean = None
方法二:先判断键是否存在(更直观)
如果你喜欢逻辑更清晰的写法,可以先检查AboutMe是否在字典里:
from bs4 import BeautifulSoup if 'AboutMe' in xml: # 存在则清理HTML标签 about_me_clean = BeautifulSoup(xml['AboutMe'], "html.parser").get_text(strip=True) else: # 不存在则赋值为None about_me_clean = None
小提醒:关于HTML标签清理
StackOverflow用户的AboutMe里经常会有<a>、<b>这类HTML标签,直接用字符串替换容易漏情况,用BeautifulSoup是最稳妥的方式。如果还没装这个库,先跑下面的命令安装:
pip install beautifulsoup4
内容的提问来源于stack exchange,提问作者Theeninfam
相关产品推荐
相关产品推荐

