我有一个元组,它是选择查询的输出。元组看起来像这样:
('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。
要从 SQL 查询的输出元组中仅检索两个值“false”和“adcs-fddf-sdsd”,您可以使用正则表达式来解析字符串。这种方法允许您从文本中提取特定模式,而不管是否存在空格或其他格式字符。您可以通过以下方式修改代码来实现此目的:
如果您的输出始终采用类似的形式,您可以获得最后一个
\n
(我们称之为 x
)和之前的一个(我们称之为 y
)的位置。
您可以使用“rfind”(rfind)检索此结果,然后拆分结果以获取包含 false
和 adcs-fddf-sdsd
的列表。
x = output.rfind('\n')
y = output.rfind('\n', 0, x)
print(output[y:x].split())