我是个编程新手。面对这样的问题。正在使用Zabbix监视服务器。它有自己的API。在Python中输入一个关于打印机和监视器的信息。输出文件的格式应为:
名称打印机\tab计数器打印机
像这样:
HP1212 124512
我连接并接收数据,但无法使用'\t'将其记录在两列中。 我的代码:
`
from pyzabbix import ZabbixAPI
zapi = ZabbixAPI("http://*****/zabbix")
zapi.login("******", "*******")
item_name='Print_counter'
hosts = zapi.host.get( #get printers name
groupids=8,
output=['name'])
items = zapi.item.get( #get printers counter
groupids=8,
output=['lastvalue'],
filter={'name':item_name})`
我知道这个问题可能很小,但我不知道如何解决。在
我编辑了我的问题:
如果im使用:
for host in hosts:
a = host['name']
print a
。。我得到:
是我的打印机。在
如果我使用:
for item in items:
b = host['value']
print b
我得到:
12456
34645
...
56468
它能抵挡我的打印机。在
我想将查询的输出分组如下:
tpr001 12456
tpr002 34645
... ...
tpr020 56468
我想你需要这样的东西:
我不知道你到底给了什么zapi.host.get以及zapi.item.get,但你的循环不起作用,如你所料。 在第一个循环中,a在每个循环中都会得到一个新值,因此如果循环结束,您将找到其中的最后一个值。由于循环后的print命令,您可以看到精确的值。在
也许你应该把第二个循环放到第一个循环里
但在本例中,您将合并来自主机的每一行和来自项的每一行。 也许你的项目。获取-命令需要名称es filter,类似于
^{pr2}$也许你甚至不需要问主人,因为你所有的信息都在里面
希望,这有帮助,但我认为你应该学习编程的基础知识,如果你想更进一步(而且更容易理解的是,如果你给出的是说的名字而不是a和b,这样不仅我们能更好地理解你所期望的
我觉得很奇怪,你想依赖两个不同列表的输出顺序。如果是的话,你可以试试
相关问题 更多 >
编程相关推荐