我已经为每个表写了两个函数来接收字段的命令。而我的队友需要我将两个功能合二为一。最后我创建了这个函数,但它无法接收我的路由器表的命令。 这是我的两个功能:
# def readrouter(x):
# conn = sqlite3.connect('server.db')
# cur = conn.cursor()
# cur.execute("SELECT DISTINCT command FROM router WHERE function =? or function='configure terminal' or function='enable' ORDER BY key ASC",(x,))
# read = cur.fetchall()
# return read;
#
# a = input("x:")
# for result in readrouter(a):
# print (result[0])
# def readswitch(x):
# conn = sqlite3.connect('server.db')
# cur = conn.cursor()
# cur.execute("SELECT DISTINCT command FROM switch WHERE function =? or function='configure terminal' or function='enable' ORDER BY key ASC",(x,))
# read = cur.fetchall()
# return read;
# a = input("x:")
# for result in readrouter(a):
# print (result[0])
将两个函数合并为一个函数后,这是我的函数:
def readciscodevice(x):
conn = sqlite3.connect('server.db')
cur = conn.cursor()
if x:
cur.execute(
"SELECT DISTINCT command FROM switch WHERE function =? or function='configure terminal' or function='enable' ORDER BY key ASC",
(x,))
read = cur.fetchall()
return read
else:
cur.execute(
"SELECT DISTINCT command FROM router WHERE function =? or function='configure terminal' or function='enable' ORDER BY key ASC",
(x,))
read = cur.fetchall()
return read;
a = raw_input("x:")
for result in readciscodevice(a):
print(result[0])
我使用我的if语句,它可以读取我的切换表的命令但无法从切换表中获取命令。我是否需要编写布尔值或其他内容以确保它可以访问我的路由器表?
更新(我试图首先选择两个命令,即启用和配置,然后我将识别我的输入,如果输入与我的开关" s字段匹配"功能&#34 ;它提供了一些命令,ELSE将匹配我的路由器"功能"):
# def readciscodevice(x):
# conn = sqlite3.connect('server.db')
# cur = conn.cursor()
#
# cur.execute(
# "SELECT DISTINCT command FROM switch WHERE function='configure terminal' or function='enable' ORDER BY key ASC"
# )
#
# if x:
# cur.execute(
# "SELECT DISTINCT command FROM switch WHERE function =? ORDER BY key ASC",
# (x,))
# read = cur.fetchall()
# return read
# else:
# cur.execute(
# "SELECT DISTINCT command FROM router WHERE function =? ORDER BY key ASC",
# (x,))
# read = cur.fetchall()
# return read;
#
#
# a = raw_input("x:")
# for result in readciscodevice(a):
# print(result[0])
在更新代码中: 它无法选择enable conf t命令 也无法到达我的路由器的字段来获取命令.. 但它可以选择开关命令
答案 0 :(得分:1)
您需要引入另一个参数来确定您希望执行哪个块,或者明确区分x的两个条件。 '如果x:'只检查x有一个有效(非假)值,那么空值的东西将会失败,如:0,None,false,''等。