我需要在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()
Run Code Online (Sandbox Code Playgroud)
现在,我需要打印nagios perfdata的数据.我从来不需要perfdata有动态名称,所以我被卡住了.
我经常这样做:
print 'ramTotal={0:.2f}{1}' .format(ramTotal/1024,UOM)
Run Code Online (Sandbox Code Playgroud)
但是我不能把row [3]的值放在我需要的地方
print 'row[3]={0:.1f}{1}' .format(row[0],row[1])
Run Code Online (Sandbox Code Playgroud)
不起作用
all_my_lists = {} #USE A DICT!!!
all_my_list[listx[2]] = listx #listx[2] gives the 3rd value in listx
Run Code Online (Sandbox Code Playgroud)
我认为你正在寻找...如果你真的想设置变量名,你需要搞乱locals()和globals()...这是粗略的
| 归档时间: |
|
| 查看次数: |
3195 次 |
| 最近记录: |