0

我有一些代码可以解析可能是也可能不是有效的 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,我怀疑有!

4

1 回答 1

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'] ...

于 2013-08-19T09:30:02.457 回答