假設我有一些像這樣的(簡化)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