我有一本这样的字典:
from collections import Counter
new_dict = {}
for k in d.keys():
aux_counter = Counter(d[k])
new_dict [k] = {}
for c, v in zip(aux_counter.keys(), aux_counter.values()):
new_dict[k][c] = v
当我运行以下命令时
js = {'value': {'boot': {'delay': 0} } }
我得到print(js['value']['boot']['delay'])
,这是我期望得到的行为。
运行以下命令
0
我得到print(js['value']['booooot']['delay'])
,这也是预期的。
但是,当我将所有这些都包装到try / except中并打印异常时,我没有得到预期的错误。
KeyError: 'booooot'
我刚刚在控制台def myfunc(js):
try:
js['value']['booooot']['delay']
except Exception as e:
print(e)
上获得了以下内容
我是否应该像在try / except块之外运行打印一样得到'booooot'
?
答案 0 :(得分:0)
import sys
def func(js):
try:
print(js['value']['boooot']['delay'])
except:
print("Error Information: " + str(sys.exc_info()))
js = {'value': {'boot': {'delay': 0} } }
func(js)
命令sys.exc_info()
将以元组的形式返回异常信息,其中索引0
是错误类型,索引1
包含错误本身。
上面的代码会打印出来
Error Information: (<class 'KeyError'>, KeyError('boooot'), <traceback object at 0x01867558>)
感谢您的提问!希望这会有所帮助。