【发布时间】:2017-06-02 08:49:19
【问题描述】:
我是编程新手。面对这样的问题。正在使用 Zabbix 监控服务器。它有自己的 API。挑战在于通过 Python 中的脚本连接到监控服务器并获取有关打印机及其计数器的信息并将其放入文件中。输出文件应具有以下格式:
打印机名称\标签计数器打印机
像这样:
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})`
我知道这个问题很可能是微不足道的,但我不知道如何解决。
我编辑了我的问题:
如果我使用:
for host in hosts:
a = host['name']
print a
.. 我得到:
tpr001
tpr002
...
tpr020
它是我的打印机。
如果我使用:
for item in items:
b = host['value']
print b
我明白了:
12456
34645
...
56468
它抵消了我的打印机。
我想像这样对查询的输出进行分组:
tpr001 12456
tpr002 34645
... ...
tpr020 56468
【问题讨论】:
-
如果我用于输出:for host in hosts: for item in items: print host['name'],'\t',item['lastvalue'] 。它让我重复列中的打印机名称和混合数据