2016-09-05 61 views
-1

我試圖評估存儲在使用ast庫的字符串中的python代碼,但是當訪問產生的SyntaxException錯誤的消息屬性時,我只能打印對象的引用而不能實際價值。我如何打印這個值?查找SyntaxError異常的實際值python

下面是我使用的代碼:印刷

#!/usr/bin/python 

import ast 

def is_valid_python(code): 
    try: 
     ast.parse(code) 
    except SyntaxError: 
     return str(SyntaxError.message) 
    return True 

code = 'print("hello"")' 

print(is_valid_python(code)) 

和消息是:

<attribute 'message' of 'exceptions.BaseException' objects> 

回答

1

要打印的通用的SyntaxError類的消息屬性,而不是從實際的一個拋出的異常。

嘗試

except SyntaxError as syntax_error: 
    return syntax_error.message 

請注意,這是一個有點陌生,有成功返回True的函數,或失敗的字符串。