python - PythonNameError:未定义名称“发现”
问题描述
具有以下功能。但是出现错误..有什么想法吗?
def zabbix_discovery(pingdom_data):
discovery = []
for k,v in data["recipes"].items():
discovery.append(
{"{#NAME}": str(v['name'])}
)
cmd_args = [
'zabbix_sender',
'-z', config.get('ZABBIX', 'server'),
'-p', config.get('ZABBIX', 'port'),
'-s', config.get('ZABBIX', 'host'),
'-k', config.get('ZABBIX', 'key1'),
'-o', "'{ \"data\": " + discovery + " }'"
]
zabbix_trapper(cmd_args)
=====
Traceback (most recent call last):
File "txncheck_backup.py", line 52, in <module>
'-o', "'{ \"data\": " + discovery + " }'"
NameError: name 'discovery' is not defined
=====
解决方案
discovery
您在函数调用中声明它之前正在使用它。
此外,当您在函数中声明它时,它将在其末尾被销毁,并且在主范围内不可用。
推荐阅读
- sql-server - SSIS - 如何将日期时间变量传递给存储过程
- r - 如何创建具有相同 y 轴的两个变量(死的和活的)的箱线图?
- eyeshot - 是否可以仅将纹理应用于网格的一部分?
- python - 二维数组在 python 中不能正常工作
- reactjs - 从 excel 导入特定数据列并在 Reach Application 中显示
- mysql - 由于删除查询 - 基于行的复制,从属服务器中的 MySQL 复制滞后
- r - 如果后跟 R 中的空行,则将多行数据帧合并在一起
- architecture - 是否可以像这样构建我的 Axon 项目?
- android - 向所有 React Native 应用程序发送“重新加载”失败 IOS
- r - 从 sf 线串对象创建具有正确索引标签的 inla.graph 对象