如何从Python中的元组中删除多个值

问题描述 投票:0回答:2

我有一个元组,它是选择查询的输出。元组看起来像这样:

('checkStatus id              \n========================= ==================== \nfalse adcs-fddf-sdsd \n', None)

我试图仅检索两个值,即 false 和 adcs-fddf-sdsd

这是代码:

import subprocess

def foo():
  cmd = return ("select checkStatus , id from abc") 
  pr = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=TRUE)
  output = pr.communicate()
  print(output)          //('checkStatus id              \n========================= 
                         //      ==================== \nfalse adcs-fddf-sdsd \n', None)

现在,我发现我可以使用替换来使用

str(output).replace(' ', '')
删除不需要的空白。因此,对于所有其他细节,我还必须添加多个替换语句。那么,有没有更好的方法来只检索这两个值
(false and adcs-fddf-sdsd)
.

注意 代码必须兼容 Python 版本 2 和 3。

python python-3.x python-2.x
2个回答
0
投票

要从 SQL 查询的输出元组中仅检索两个值“false”和“adcs-fddf-sdsd”,您可以使用正则表达式来解析字符串。这种方法允许您从文本中提取特定模式,而不管是否存在空格或其他格式字符。您可以通过以下方式修改代码来实现此目的:


0
投票

如果您的输出始终采用类似的形式,您可以获得最后一个

\n
(我们称之为
x
)和之前的一个(我们称之为
y
)的位置。 您可以使用“rfind”(rfind)检索此结果,然后拆分结果以获取包含
false
adcs-fddf-sdsd
的列表。

x = output.rfind('\n')
y = output.rfind('\n', 0, x)
print(output[y:x].split())
© www.soinside.com 2019 - 2024. All rights reserved.