我这里遇到了一个新问题.. 代码1:
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 ['name']]&中看到差异。 serverInfo_D.get(VAL [ '名称']) 代码2失败但代码1工作
数据
serverInfo_D:{'user': 'usr', 'pass': 'pass'}
data: {'par1': 9995, 'extraparam1': 22}
val: {'par1','user','pass','extraparam1'}
对于数据dict ..以及for循环中迭代val 的所有代码都引发了异常
答案 0 :(得分:5)
来自docs(dict.get):
如果键在,则返回key的值 字典,否则默认。如果 默认没有给出,默认为 没有,所以这种方法永远不会引起 一个KeyError。
这就是为什么你的第一个代码有效,第二个没有。