2014-10-20 50 views
0

在Python中呈现字符串时,我陷入了处理错误的困境。 我会举例说明。 我有一个模板字符串作为跟随的Python:在Python中呈现字符串时处理错误

template = "%(name)s, %(address)s, %(school)s" 

而且我有一本字典如下:

arg = {'name': nameString, 
     'address': addressString, 
     } 

当使用渲染字符串:

myFinalStr = template%arg 

涉及到一个错误:

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
KeyError: 'school' 

这是因为无法在模板字符串中找到字段“school”。我怎么能处理这个错误(我不能使用尝试异常处理,因为它不是一个例外,我认为)

我必须处理这个错误,因为我允许用户输入模板,可以是对还是错。

+1

“因为它不是一个例外”,它是一个例外。这是[KeyError](https://docs.python.org/2/library/exceptions.html#exceptions.KeyError) – Andy 2014-10-20 05:09:49

回答

1

可以使用try...except

的基本格式是

try: 
    myFinalStr = template%arg 
except KeyError: 
    #do somthing to handle the keyerror 

或类似

try: 
    template = "%(name)s, %(address)s, %(school)s" 
    myFinalStr = template%arg 
except KeyError: 
    template = "%(name)s, %(address)s" 
    myFinalStr = template%arg 

将采取错误的照顾。