Python从结果列表中删除括号

2024-10-01 09:34:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从mysql数据库中检索一些结果,它们以括号分隔的形式出现。我想删除括号,我已经使用了strip函数,但这只适用于当我有一个结果显示。在

下面的代码将只删除只有一个元素的搜索结果的括号。在

@QtCore.pyqtSignature("on_pushButton_clicked()")
def searchDBnumber(self):
    searchName = self.searchInput.toPlainText() 

    if len(searchName) != 0:
        searchForName = ("""SELECT number FROM test_table WHERE name =""" + "'"+ searchName +"'")



        cursor.execute(searchForName)

        result = cursor.fetchall()

        result = str(result).strip('[](),')
        self.number.setPlainText(result)

Tags: 函数代码self数据库元素numbermysqlresult
2条回答

如果只想从结果中删除所有括号,可以使用replace()方法。语法是字符串。替换(字符串“替换”到“字符串”;“字符串”;“替换为”。)。在

例如:

result = str(result).replace("()", "")

我相信,每种支架类型都需要这样做。再来一轮“[]”。在

请注意,删除所有方括号后,如果方括号是分隔符,则将结果集拆分为单个行可能会很困难。在

经过一番周折,我发现从mysql查询得到的结果不是字符串,而是元组,所以简单地删除括号是行不通的。在

下面是我如何处理它的示例,从查询开始:

mycursor.execute("SELECT name1, name2 FROM testdatabase where (name1 REGEXP '^test.*') ")

然后,我可以循环查看结果并打印每个结果,如下所示:

^{pr2}$

结果如下:

('test0', 'something0')
('test1', 'something1')
('testing0', 'somethingelse1')

但我想把这些结果分成两个字段,这样你就可以这样做了:

for result in query_results:
    part1, part2 = result
    print('{} - {}'.format(part1, part2))

这样可以得到如下输出:

test0 - something0
test1 - something1
testing0 - somethingelse1

我的代码计划是创建一个可以轻松搜索的json类型字典,而不仅仅是打印出来。在

相关问题 更多 >