如何不解压查询返回的所有内容?
How to not unpack all returned from a query?
我有以下查询(注意不是正常的 SELECT):
sql = "SHOW PROCEDURE STATUS WHERE Db <> 'sys' "
这个问题 returns 很多字段,我只需要前两个,查看完整代码:
sql = "SHOW PROCEDURE STATUS WHERE Db <> 'sys' "
self.cursor.execute(sql)
res = [(Db,Name) for(Db,Name,a,b,c,d,e,f,g,h,j) in self.cursor]
为了不出错,我需要添加所有那些我什么都不做的 a...j
变量。
如何以更简洁的方式编写此内容?
我正在使用 Mysql/Oracle
提供的连接器
尝试:
res = [(Db,Name) for(Db,Name,*_) in self.cursor]
元组解包中的 *
格式表示“一个 "catch-all" 名称,它将被分配一个未分配给 "regular" 名称的所有项目的列表。"
参考文献:
一开始不要将行解压缩到多个变量中。只需将行放入一个变量中,然后从中获取你想要的内容。
[(row[0], row[1]) for row in self.cursor]
或者甚至:
[row[:2] for row in self.cursor]
我有以下查询(注意不是正常的 SELECT):
sql = "SHOW PROCEDURE STATUS WHERE Db <> 'sys' "
这个问题 returns 很多字段,我只需要前两个,查看完整代码:
sql = "SHOW PROCEDURE STATUS WHERE Db <> 'sys' "
self.cursor.execute(sql)
res = [(Db,Name) for(Db,Name,a,b,c,d,e,f,g,h,j) in self.cursor]
为了不出错,我需要添加所有那些我什么都不做的 a...j
变量。
如何以更简洁的方式编写此内容?
我正在使用 Mysql/Oracle
提供的连接器尝试:
res = [(Db,Name) for(Db,Name,*_) in self.cursor]
元组解包中的 *
格式表示“一个 "catch-all" 名称,它将被分配一个未分配给 "regular" 名称的所有项目的列表。"
参考文献:
一开始不要将行解压缩到多个变量中。只需将行放入一个变量中,然后从中获取你想要的内容。
[(row[0], row[1]) for row in self.cursor]
或者甚至:
[row[:2] for row in self.cursor]