我试图使用argparse解析参数中的值。当我用“print”测试我的条件句时,效果很好。当我现在向sql代码中添加值时,就会发生错误。请原谅我不太漂亮的sql查询,这是我获取所需数据的唯一方法。在
错误消息:类型错误:必须是字符串或只读缓冲区,而不是元组
import mysqldb
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-m','--machine', nargs=1, help="Machine Hostname", action="store")
args = parser.parse_args()
query = (""" select ifname, usname, mtdesc, lobuilding Location from
interface left join machine on ifmcid=mcid
left join machine_type on mcmtid=mtid left join user on mcusid=usid left join location on mcloid=loid
WHERE mccurrentosid = 32 AND ifname = %s """, (args.machine,))
cur.execute(query )
for row in cur.fetchall():
print row
查询参数应传递到
execute()
:在尝试了不同的排列之后,终于得到了一个工作代码。我不得不把“,”去掉args.机器. 也许“左加入”语句不再需要它了。在
感谢@alecxe的帮助
相关问题 更多 >
编程相关推荐