我需要在 python 中操作几个列表,我需要它们中的每一个都取它包含的第三个值的名称,但我无法绕过这个语法。
谢谢
编辑:
我正在为 nagios 编写一个从 mssql 服务器提取数据的插件,我需要为 nagios perfdata 格式化数据。我已经完成了大部分工作,我只需要格式化数据。
def main():
parser = optparse.OptionParser(usage=usage)
parser.add_option("-H", "--host", dest="host", help="hostname or ip address to check", default="localhost")
parser.add_option("-u", "--user", help="DB username", type="string")
parser.add_option("-p", "--password", help="DB password")
parser.add_option("-P", "--port", help="database port", default="1433")
parser.add_option("-d", "--database", help="Database to query")
(options, args) = parser.parse_args()
con_string = "DRIVER=FreeTDS;SERVER={0};PORT={1};UID={2};PWD={3};DATABASE={4}" . format(options.host,options.port,options.user,options.password,options.database)
try:
con = pyodbc.connect(con_string)
except:
print "CRITICAL: error connecting, wrong options or database may be down"
print sys.exc_info()
exit(2) # crtical
# if we are connected, let's fetch some data!
cur = con.cursor()
cur.execute(query)
rows = cur.fetchall()
现在,我需要打印 nagios perfdata 的数据。我从来不需要 perfdata 有动态名称,所以我被卡住了。
我通常会做类似的事情:
print 'ramTotal={0:.2f}{1}' .format(ramTotal/1024,UOM)
但我不能把 row[3] 的值放在我需要的地方
print 'row[3]={0:.1f}{1}' .format(row[0],row[1])
不工作