文章内容
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]
黄兵个人博客原创。
评论列表