我有以下函數,它讀取一個dict
並影響到局部變量的一些值,然後將其作爲元組返回。更優雅的方式來處理多個KeyError異常
問題是某些所需的鍵可能不存在於字典中。
到目前爲止,我有這個代碼,它做我想要的,但我不知道是否有一個更優雅的方式來做到這一點。
def getNetwork(self, search):
data = self.get('ip',search)
handle = data['handle']
name = data['name']
try:
country = data['country']
except KeyError:
country = ''
try:
type = data['type']
except KeyError:
type = ''
try:
start_addr = data['startAddress']
except KeyError:
start_addr = ''
try:
end_addr = data['endAddress']
except KeyError:
end_addr = ''
try:
parent_handle = data['parentHandle']
except KeyError:
parent_handle = ''
return (handle, name, country, type, start_addr, end_addr, parent_handle)
我是由無數try: except:
種害怕,但如果我把所有的矯揉造作一個try: except:
內將停止一旦第一個丟失的字典鍵引發錯誤影響值。
Thx爲你的答案你們倆!我會在稍後測試。我真的很喜歡get()解決方案,因爲它正是我的問題......正如文檔所示: >如果鍵在字典中,則返回鍵的值,否則爲默認值。如果未給出默認值,則默認爲None,以便此方法不會引發KeyError。 –