【发布时间】:2018-04-14 08:07:05
【问题描述】:
如果 Numba 不支持 try catch 语句,
解决方法是什么?
假设我正在解码一系列 json 对象,
for json_str in stream:
obj = json.loads(json_str)
这有时可能是不正确的。
在标准python中,我写:
for json_str in stream:
try:
obj = json.loads(json_str)
...
sys.stdout.write(...)
except:
sys.stderr.write(...)
但是,在我的 numba 代码中,我不能使用 try...except 构造。有没有办法解决这个问题?
比如某种“手动”捕获的错误信息?
【问题讨论】:
-
Numba 将其加速 > 10 倍(我能够使用非失败 json 进行测试)。我包括产生错误的最小示例。
-
可能可以加速
...,但不能加速JSON加载。 -
@user2357112 但是,如果我在 Numba 编译函数之外进行外部循环和 json 加载,我的加速度会大大降低。所以,在某个时候,我需要实施我的解决方案。