假设我有一些像这样的(简化)BeautifulSoup码,提取数据到词典:更好的方式来尝试 - 除了多次检查
tournament_info = soup.find_all('li')
stats['Date'] = tournament_info[0].text
stats['Location'] = tournament_info[1].text
stats['Prize'] = tournament_info[3].text.split(':')[1].strip()
在初始find_all返回一个异常的情况下,我希望所有字典条目是'None'。在任何单个字典分配的情况下都会返回一个异常,我想要'无'。
有什么好的方法来写这个,除了像下面这样可怕的东西吗?
try:
tournament_info = soup.find_all('li')
except:
m_stats['Date'] = 'None'
m_stats['Location'] = 'None'
m_stats['Prize'] = 'None'
try:
m_stats['Date'] = tournament_info[0].text
except:
m_stats['Date'] = 'None'
try:
m_stats['Location'] = tournament_info[1].text
except:
m_stats['Location'] = 'None'
try:
m_stats['Prize'] = tournament_info[3].text.split(':')[1].strip()
except:
m_stats['Prize'] = 'None'
这是故意的,其中一些是“无”和其他“无”? –
另一方面,您的解决方案与其他建议的解决方案具有相同的行数(或更少),并立即清楚您要做什么。也许它并不像你想象的那么可怕...... – pbuck
@pbuck,好吧,对于三项词典,它可能与其他“更普遍”的解决方案一样短。你打算如何处理100个项目的词典? – makeiteasy