我的代码中有一个简单的循环,应该在一堆dicts中读取。有时候,json会在加载时抛出ValueError
(即part_row = json.loads(part)
行),我想抓住这个,这样我的程序就可以继续了。
log = logging.getLogger(__name__)
for part in output_rows:
try:
part_row = json.loads(part)
# log.warn('%s', part_row['name'])
except ValueError:
log.warn('part "%s" is bad to json', part)
continue
一切正常,使用try / except EXCEPT进行日志记录。由于某种原因,except语句中的日志语句永远不会完成(或者似乎不是),除非其他日志语句被取消注释。请注意,如果我使用print而不是log,也会发生这种情况。这对我来说似乎是黑魔法。
如果有人对此有任何见解,我们将不胜感激。
更新
不知怎的,今天,我回到代码中,注释掉了这一行,并且代码工作正常,日志记录完全按照预期发生。我不知道发生了什么。我以前做过那个。我会把它归结为编程黑魔法。
更新2
我的一位朋友表示可能是由于过时的.pyc文件造成的。我真的没有办法检查,但值得考虑。