在嘗試遍歷大量字典時,我很掙扎。大多數情況下,它們包含相同的鍵,但也有一些缺少某些鍵。顯然這會導致錯誤并且我無法成功運行。以下是串列示例:
test_dict = [{'away': {'gamesPlayed': 0,
'pointsByScoringPeriod': {'14': 84.54},
'teamId': 9,
'tiebreak': 0.0,
'totalPoints': 84.54},
'home': {'gamesPlayed': 0,
'pointsByScoringPeriod': {'14': 84.54},
'teamId': 9,
'tiebreak': 0.0,
'totalPoints': 84.54},
'id': 98,
'matchupPeriodId': 14,
'playoffTierType': 'NONE',
'winner': 'AWAY'},
{'home': {'gamesPlayed': 0,
'pointsByScoringPeriod': {'14': 84.54},
'teamId': 9,
'tiebreak': 0.0,
'totalPoints': 84.54},
'id': 98,
'matchupPeriodId': 14,
'playoffTierType': 'NONE',
'winner': 'AWAY'}]
我們缺少away第二個字典,所以當我運行以下代碼時:
matchup_data = []
for matchup in test_dict:
Week = matchup['matchupPeriodId']
Matchup_ID = matchup['id']
Winner = matchup['winner']
Game_Type = matchup['playoffTierType']
Away_ID = matchup['away']['teamId']
Away_Points = matchup['away']['totalPoints']
Home_ID = matchup['home']['teamId']
Home_Points = matchup['home']['totalPoints']
matchup_data.append([
Week, Matchup_ID, Winner, Game_Type, Away_ID, Away_Points, Home_ID, Home_Points
])
我顯然得到了錯誤,KeyError: 'away'因為away在第二本字典中找不到。
有沒有辦法忽略丟失的鍵,只需在丟失NULL的字典中放置一個變數away?先感謝您。
最后,如果這已經被問到,我很抱歉,因為我似乎在任何地方都找不到。我看到多個關于迭代字典的問題,但沒有關于不同鍵的問題
uj5u.com熱心網友回復:
代替:
matchup['away']['teamId']
和:
matchup['away']['teamId'] if 'away' in matchup else None
您還可以使用對 的鏈接呼叫.get,每次呼叫都提供適當的默認值:
matchup.get('away', {}).get('teamId', None)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/386397.html
上一篇:將字典更改為集合(索引字典?)
