2010-12-23 50 views
1

我在這裏一個新的問題.. CODE 1:蟒蛇:問題詞典get方法的默認值

try: 
    urlParams += "%s=%s&"%(val['name'], data.get(val['name'], serverInfo_D.get(val['name']))) 
except KeyError: 
    print "expected parameter not provided - "+val["name"]+" is missing" 
    exit(0) 

代碼2:

try: 
    urlParams += "%s=%s&"%(val['name'], data.get(val['name'], serverInfo_D[val['name']])) 
except KeyError: 
    print "expected parameter not provided - "+val["name"]+" is missing" 
    exit(0) 

看到serverInfo_D [VAL之探源[ '名稱']] & serverInfo_D.get(VAL [ '名稱']) 代碼2失敗,但代碼1件作品

數據

serverInfo_D:{'user': 'usr', 'pass': 'pass'} 
data: {'par1': 9995, 'extraparam1': 22} 
val: {'par1','user','pass','extraparam1'} 

異常升高用於數據字典..並在for循環所有代碼遍歷VAL

回答

5

docs(dict.get):

返回爲鍵如果該值鍵是在 的字典中,否則默認。如果沒有給出 默認值,則默認爲 無,因此此方法從不會引發KeyError 。

這就是爲什麼你的第一個代碼工作,其次不是。

+0

@goutham:這正是您需要發佈錯誤信息的原因。我不知道問題是什麼。 – Falmarri 2010-12-23 07:57:48