文章内容

2021/6/12 10:27:29,作 者: 黄兵

Python UnboundLocalError

最近在运行服务的时候,出现了 UnboundLocalError, 具体错误代码如下:

try:
json_result = result.json()
except decoder.JSONDecodeError:
self._logger.error(f'解析Json数据出现错误我,函数名:comm_api_BGPView_ASNPrefixes,json:{json_result}.')
return False

出现错误的原因:

在except里面,json_result可能访问不到,所以会出现json_result在Python 没有变量声明。

解决方案:

使用nonlocal, nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量:

try:
json_result = result.json()
except decoder.JSONDecodeError:
nonlocal json_result
self._logger.error(f'解析Json数据出现错误我,函数名:comm_api_BGPView_ASNPrefixes,json:{json_result}.')
return False

或者直接删除except里面的json_result。


参考资料:

1、Don't understand why UnboundLocalError occurs (closure) [duplicate]


黄兵个人博客原创。

转载请注明出处:黄兵个人博客 - Python UnboundLocalError

分享到:

发表评论

评论列表