我有一些代码可以解析有效的JSON字符串,也可能不是。我想在except
子句中捕获此异常:
ValueError: Extra data: line 1 column 1 - line 1 column 19 (char 1 - 19)
但不是这个例外:
ValueError: Expecting : delimiter: line 1 column 3 (char 3)
我会将其编码为此变体:
try:
json.loads(user_sting)
except ValueError as e:
# How to parse 'e' now?
handle_error(e)
或者作为这个的变体:
try:
json.loads(user_sting)
except ValueError['Extra data'] as e:
handle_error(e)
我所做的不同之处在于两个:
字符之间的“额外数据”或“期待”字符串。我认为我可以使用正则表达式的第一个方法来解析str(e)
,但如果有一个更简单的方法,那么我想知道。作为Python,我怀疑它有!
答案 0 :(得分:3)
使用e.args
代替str(e)
:
try:
json.loads('""extra-data')
except ValueError as e:
if e.args[0].startswith('Extra data:'):
handle_error(e)
else:
raise
恕我直言,没有类似except ValueError['Extra data'] ..
的语法糖。