Python 如何不解包查询返回的所有内容?
我有以下查询(请注意,这不是一个正常的选择):Python 如何不解包查询返回的所有内容?,python,mysql,python-3.x,mysql-connector-python,Python,Mysql,Python 3.x,Mysql Connector Python,我有以下查询(请注意,这不是一个正常的选择): sql=“显示数据库'sys'所在的过程状态” 此问题返回许多字段,我只需要前两个字段,请参阅完整代码: 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] sql=“显示数据库'sys'所在的过程状态” sel
sql=“显示数据库'sys'所在的过程状态”
此问题返回许多字段,我只需要前两个字段,请参阅完整代码:
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]
sql=“显示数据库'sys'所在的过程状态”
self.cursor.execute(sql)
res=[(Db,Name)表示self.cursor中的(Db,Name,a,b,c,d,e,f,g,h,j)]
为了避免出错,我需要添加所有我不做任何处理的a…j
变量。如何以更简洁的方式书写 我正在使用Mysql/Oracle提供的连接器,请尝试:
res = [(Db,Name) for(Db,Name,*_) in self.cursor]
tuple unpacking中的*
格式表示“一个“全面”名称,该名称将被分配一个未分配给“常规”名称的所有项目的列表
参考资料:
[(row[0], row[1]) for row in self.cursor]
甚至可能:
[row[:2] for row in self.cursor]
出于某种原因,它只适用于下划线,*导致语法错误(我在py3.4上)我的错误,似乎问题出在Eclipse解释器中。从命令行运行时,一切正常。
[row[:2] for row in self.cursor]