我使用以下代码:
import traceback
errors = open('ERROR(S).txt', 'a')
try:
execfile("testing.py", {})
except Exception:
errors.write(traceback.format_exc() + '\n')
errors.write("\n")
errors.close()
例如我可能会收到
Traceback (most recent call last):
File "C:\starter.py", line 87, in execute_subscripts
execfile("test.py", {})
File "test.py", line 85, in <module>
JSONDATA = json.loads(JSONDATA)
File "C:\Python27\lib\json\__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "C:\Python27\lib\json\decoder.py", line 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Python27\lib\json\decoder.py", line 383, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
如何让它检索变量JSONDATA
内的数据以及此追溯?
答案 0 :(得分:1)
您可以使用logging
库并将JSONDATA
记录到带有logging.StreamHandler
的stderr或带有logging.FileHandler
的文件。
示例:
l = logging.getLogger("test")
l.addHandler(logging.StreamHandler())
l.setLevel(logging.DEBUG)
...
l.debug("JSON DATA: %s", JSONDATA)
...
我认为这是找出问题的正确方法。 (或者您可以使用简单的print
,或者如果您想详细使用pdb
)